码迷,mamicode.com
首页 > 编程语言 > 详细

Spring 工作原理

时间:2017-09-05 19:00:26      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:string   接口   ring   需要   pre   获得   ice   for   情况   

spring框架有两个重要的功能是IOC和AOP

IOC(依赖注入):将对象的创建和依赖关系交给容器进行管理,简化了开发过程。

AOP(面向切面):spring通过预编译方式和运行期动态代理的方式在不修改源代码的情况下,给程序添加功能的一种思想。

springIOC工作原理

springIOC最重要的单个包是beans,context,core包

其中最重要的两个接口是:BeanFactory和BeanDefinition

BeanFacoty:是springIOC核心工厂接口,根据对象的依赖关系进行创建对象。ApplicationContext就是其中的一个具体实现。

要定义一个工厂必须满足三个条件

①需要持有各种bean的定义

②需要持有bean之间的依赖关系

③需要读取xml配置文件的工具

BeanDefinition:是spring中bean的定义接口,该接口继承了两个接口,AttributeAccessor和BeanMetadataElement。AttributeAccessor是core包下的,使bean定义的接口具有处理属性的能力。BeanMetadataElement是bean包下的,它可以获得bean的配置定义的一个元素。在xml文件下,就是会持有bean的一个标签。

BeanFactory持有bean的定义是通过Map集合实现的(BeanName是key),Map集合是Map<String,BeanDefinition>而非Map<String,Object>,是因为bean的初始化是可控的,可以在启动容器时创建实例,也可以在使用才创建实例。通过lazy-init属性来实现 (默认为false)

bean的初始化过程就是往Map集合里面注入内容。

其过程分为三部分:定位(xml文件的位置)、解析、注册(将BeanName和对应的BeanDefinition添加到Map中去)

解析过程:先通过Reader读取xml文件,然后通过documentLoader将资源转化为Document,最后通过SAX解析器解析Document文件。

 

SpringAOP工作原理:

其中重要的接口有:

Advice:是一个超级接口,扩展了很多的子接口,如AfterAdvice和BeforeAdvice。作用是给目标对象添加的方法

PointCut:决定需要切入的方法

Advisor:通知者。Advisor依赖于Advice,而Advisor的子接口,PointAdvisor还依赖于PointCut.。作用:该接口确切的包含了要通知谁和要通知什么。

FactoryBean:该接口是产生Bean的特殊Bean

FactoryBean的实现类ProxyFactoryBean:产生Proxy的Bean,也就是产生一个加强的Bean

该对象最重要的两个属性是:interpretorNames和targetName,interpretorNames该属性是确定需要加强哪些东西以及怎么加强。targetName该属性是目标对象。

 

Spring 工作原理

标签:string   接口   ring   需要   pre   获得   ice   for   情况   

原文地址:http://www.cnblogs.com/quanhuan/p/7479723.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!