关键词:Spring,Bean,组件,BeanFactory,工厂模式
上一章:[b]Spring框架的设计理念与设计模式(2)-Spring的设计理念[/b] [url]http://javapub.iteye.com/blog/751545[/url]
下一章:[b]Spring框架的设计理念与设计模式(4)-Context组件[/b] [url]http://javapub.iteye.com/blog/751625[/url]
[img]http://www.kutoku.info/images/java/100831/spring02.gif[/img]
[b]核心组件详解[/b]
这里将详细介绍每个组件内部类的层次关系,以及它们在运行时的时序顺序。我们在使用Spring是应该注意的地方。
[b]Bean组件[/b]
前面已经说明了Bean组件对Spring的重要性,下面看看Bean这个组件式怎么设计的。Bean组件在Spring的 org.springframework.beans包下。这个包下的所有类主要解决了三件事:Bean的定义、Bean 的创建以及对Bean的解析。对Spring的使用者来说唯一需要关心的就是Bean的创建,其他两个由Spring在内部帮你完成了,对你来说是透明的。
SpringBean的创建时典型的工厂模式,他的顶级接口是BeanFactory,下图是这个工厂的继承层次关系:
[img]http://www.kutoku.info/images/java/100831/spring03.gif[/img]
BeanFactory有三个子类:ListableBeanFactory、HierarchicalBeanFactory和Autowire Capable Bean Factory。但是从上图中我们可以发现最终的默认实现类是DefaultListableBeanFactory,他实 现了所有的接口。那为何要定义这么多层次的接口呢?查阅这些接口的源码和说明发现,每个接口都有他使用的场合,它主要是为了区分在Spring内部在操作过程中对象的传递和转化过程中,对对象的 数据访问所做的限制。例如ListableBeanFactory接口表示这些Bean是可列表的,而HierarchicalBeanFactory表示的是这些Bean是有继承关系的,也就是每个Bean有可能有父Bean。 AutowireCapableBeanFactory接口定义Bean的自动装配规则。这四个接口共同定义了Bean的集合、Bean之间的关系、以及 Bean行为。
Bean的定义主要有BeanDefinition描述,如下图说明了这些类的层次关系:
[img]http://www.kutoku.info/images/java/100831/spring04.gif[/img]
Bean的定义就是完整的描述了在Spring的配置文件中你定义的节点中所有的信息,包括各种子节点。当Spring成功解析你定义的一个节点后,在Spring的内部他就被转化 成BeanDefinition对象。以后所有的操作都是对这个对象完成的。
Bean的解析过程非常复杂,功能被分的很细,因为这里需要被扩展的地方很多,必须保证有足够的灵活性,以应对可能的变化。Bean的解析主要就是对Spring配置文件的解析。这个解析过程主要通过 下图中的类完成:
[img]http://www.kutoku.info/images/java/100831/spring05.gif[/img]
当然还有具体对tag的解析这里并没有列出。
[b]目录--Spring框架的设计理念与设计模式[/b]
[b]Spring框架的设计理念与设计模式(1)-Spring的架构[/b] [url]http://javapub.iteye.com/blog/751539[/url]
[b]Spring框架的设计理念与设计模式(2)-Spring的设计理念[/b] [url]http://javapub.iteye.com/blog/751545[/url]
[b]Spring框架的设计理念与设计模式(3)-Bean组件[/b] [url]http://javapub.iteye.com/blog/751550[/url]
[b]Spring框架的设计理念与设计模式(4)-Context组件[/b] [url]http://javapub.iteye.com/blog/751625[/url]
[b]Spring框架的设计理念与设计模式(5)-Core组件[/b] [url]http://javapub.iteye.com/blog/751627[/url]
[b]Spring框架的设计理念与设计模式(6)-Ioc容器及BeanFactory工厂[/b] [url]http://javapub.iteye.com/blog/751635[/url]
[b]Spring框架的设计理念与设计模式(7)-Spring中AOP特性与实现[/b] [url]http://javapub.iteye.com/blog/751642[/url]
[b]Spring框架的设计理念与设计模式(8)-代理模式[/b] [url]http://javapub.iteye.com/blog/751652[/url]
[b]Spring框架的设计理念与设计模式(9)-策略模式[/b] [url]http://javapub.iteye.com/blog/751653[/url]
上一章:[b]Spring框架的设计理念与设计模式(2)-Spring的设计理念[/b] [url]http://javapub.iteye.com/blog/751545[/url]
下一章:[b]Spring框架的设计理念与设计模式(4)-Context组件[/b] [url]http://javapub.iteye.com/blog/751625[/url]
[img]http://www.kutoku.info/images/java/100831/spring02.gif[/img]
[b]核心组件详解[/b]
这里将详细介绍每个组件内部类的层次关系,以及它们在运行时的时序顺序。我们在使用Spring是应该注意的地方。
[b]Bean组件[/b]
前面已经说明了Bean组件对Spring的重要性,下面看看Bean这个组件式怎么设计的。Bean组件在Spring的 org.springframework.beans包下。这个包下的所有类主要解决了三件事:Bean的定义、Bean 的创建以及对Bean的解析。对Spring的使用者来说唯一需要关心的就是Bean的创建,其他两个由Spring在内部帮你完成了,对你来说是透明的。
SpringBean的创建时典型的工厂模式,他的顶级接口是BeanFactory,下图是这个工厂的继承层次关系:
[img]http://www.kutoku.info/images/java/100831/spring03.gif[/img]
BeanFactory有三个子类:ListableBeanFactory、HierarchicalBeanFactory和Autowire Capable Bean Factory。但是从上图中我们可以发现最终的默认实现类是DefaultListableBeanFactory,他实 现了所有的接口。那为何要定义这么多层次的接口呢?查阅这些接口的源码和说明发现,每个接口都有他使用的场合,它主要是为了区分在Spring内部在操作过程中对象的传递和转化过程中,对对象的 数据访问所做的限制。例如ListableBeanFactory接口表示这些Bean是可列表的,而HierarchicalBeanFactory表示的是这些Bean是有继承关系的,也就是每个Bean有可能有父Bean。 AutowireCapableBeanFactory接口定义Bean的自动装配规则。这四个接口共同定义了Bean的集合、Bean之间的关系、以及 Bean行为。
Bean的定义主要有BeanDefinition描述,如下图说明了这些类的层次关系:
[img]http://www.kutoku.info/images/java/100831/spring04.gif[/img]
Bean的定义就是完整的描述了在Spring的配置文件中你定义的节点中所有的信息,包括各种子节点。当Spring成功解析你定义的一个节点后,在Spring的内部他就被转化 成BeanDefinition对象。以后所有的操作都是对这个对象完成的。
Bean的解析过程非常复杂,功能被分的很细,因为这里需要被扩展的地方很多,必须保证有足够的灵活性,以应对可能的变化。Bean的解析主要就是对Spring配置文件的解析。这个解析过程主要通过 下图中的类完成:
[img]http://www.kutoku.info/images/java/100831/spring05.gif[/img]
当然还有具体对tag的解析这里并没有列出。
[b]目录--Spring框架的设计理念与设计模式[/b]
[b]Spring框架的设计理念与设计模式(1)-Spring的架构[/b] [url]http://javapub.iteye.com/blog/751539[/url]
[b]Spring框架的设计理念与设计模式(2)-Spring的设计理念[/b] [url]http://javapub.iteye.com/blog/751545[/url]
[b]Spring框架的设计理念与设计模式(3)-Bean组件[/b] [url]http://javapub.iteye.com/blog/751550[/url]
[b]Spring框架的设计理念与设计模式(4)-Context组件[/b] [url]http://javapub.iteye.com/blog/751625[/url]
[b]Spring框架的设计理念与设计模式(5)-Core组件[/b] [url]http://javapub.iteye.com/blog/751627[/url]
[b]Spring框架的设计理念与设计模式(6)-Ioc容器及BeanFactory工厂[/b] [url]http://javapub.iteye.com/blog/751635[/url]
[b]Spring框架的设计理念与设计模式(7)-Spring中AOP特性与实现[/b] [url]http://javapub.iteye.com/blog/751642[/url]
[b]Spring框架的设计理念与设计模式(8)-代理模式[/b] [url]http://javapub.iteye.com/blog/751652[/url]
[b]Spring框架的设计理念与设计模式(9)-策略模式[/b] [url]http://javapub.iteye.com/blog/751653[/url]