IOC的一点认识:
依赖反转模式--把控制权从具体业务对象手中转交到平台或者框架中,是解决面向对象系统设计复杂性和提高面向对象系统可测试性的一个有效的解决方案。
IOC容器:一系列功能各异的容器产品,IoC容器的初始化包括BeanDefinition的Resouce定位、载入和注册这三个基本的过程。
XmlBeanFactory--容器系列的最底层实现,只提供了最基本的IoC容器的功能,可以读取以XML形式定义的BeanDefinition。
public class XmlBeanFactory extends DefaultListableBeanFactory { private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this); public XmlBeanFactory(Resource resource) throws BeansException { this(resource, null); } public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException { super(parentBeanFactory); this.reader.loadBeanDefinitions(resource); } }
在XmlBeanFactory构造方法中需要得到Resource对象,对XmlBeanDefinitionReader对象初始化,以及使用这个这个对象来完成loadBeanDefinitions的调用,就是这个调用启动了从Resource中载入BeanDefinitions的过程,这个loadBeanDefinitions同时也是IoC容器初始化的重要组成部分。
使用 XmlBeanDefinitionReader来载入BeanDefinition到容器中,Spring BeanDefinition的解析是在BeanDefinitionParserDelegate中完成的。根据解析结果,对这些属性值的处理会封装成PropertyValue对象,解析完成以后,把解析结果放到BeanDefinition对象中并设置到BeanDefinitionHolder中去。
经过一层一层的解析,我们在XML文件中定义的BeanDefinition就被整个给载入到了IoC容器中,并在容器中建立了数据映射。在IoC容器中建立了对应的数据结构,或者说可以看成是POJO对象在IoC容器中的映像,这些数据结构可以以AbstractBeanDefinition为入口,让IoC容器执行索引、查询和操作。
类:
BeanDefinition
AbstractXmlApplicationContext:
BeanDefinitionParserDelegate.parseBeanDefinitionElement();
BeanFactory--实现是IoC容器的基本形式
ApplicationContext--实现是IoC容器的高级表现形式
AOP的认识:AOP实现中,Spring充分利用了IOC容器Proxy代理对象以及AOP拦截器的功能特性,通过这些对AOP基本功能的封装机制,为用户提供了AOP的实现框架。三个主要的步骤,一个是代理对象的生成,然后是拦截器的作用,然后是Aspect编织的实现。
Java 的Proxy机制:
代理对象的生成,有CGLIB和JDK两种生成方式:
AOP拦截器链:
在调用拦截器的时候,我们接下去就可以看到对advice的通知的调用。而经过一系列的注册,适配的过程以后,拦截器在拦截的时候,会调用到预置好的一个通知适配器,设置通知拦截器,这是一系列Spring设计好为通知服务的类的一个,是最终完成通知拦截和实现的地方
相关推荐
spring学习资料大全spring学习资料大全spring学习资料大全spring学习资料大全spring学习资料大全spring学习资料大全spring学习资料大全spring学习资料大全
spring学习,通过搭建基本的工程,从中学习spring的原理
本人spring学习笔记资源文档,感兴趣可下载
spring学习笔记
Spring学习资料文档合集,包含 spring2.0-reference_RC2.1_zh_cn spring_reference_inchinese_m2 SpringGuide Spring基础教程 spring框架,技术详解及使用指导
spring 学习指南 提供了很多有用的技术资料供大家学习使用
spring学习文档 适合新手
Spring学习思维导图Spring学习思维导图Spring学习思维导图Spring学习思维导图Spring学习思维导图Spring学习思维导图Spring学习思维导图Spring学习思维导图Spring学习思维导图Spring学习思维导图Spring学习思维导图...
Spring学习笔记.xmind
Spring 学习手册Spring 学习手册Spring 学习手册
跟我学spring3,很不错的spring学习资料,值得大家收藏
spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记
spring学习遇到的问题,可以再博客中看到里面的内容,再决定是否下载。
spring 学习总结
spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码spring学习事务源码
“Java Spring学习笔记”是一份宝贵的资源,专门为想要学习和掌握Java Spring框架的开发者而设计。这份学习笔记提供了详细而系统的教程和实践指南,帮助初学者快速入门,并带领已经有一定经验的开发者深入理解和应用...
Spring学习总结文档,帮助快速入门。
Spring学习笔记( spring视频笔记)