Beans:
Spring Beans 是那些形成Spring应用的主干的java对象。它们被Spring IOC容器初始化、装配、管理。
关于bean的讲解 推荐:http://t.csdnimg.cn/yojfZ
Beanfactory
BeanFactory会在bean的生命周期的各个阶段对bean进行各种管理,并且spring将这些阶段通过各种接口暴露给我们,让我们可以对bean进行各种处理,我们只要让bean实现对应的接口,那么spring就会在bean的生命周期的相应阶段,调用我们实现的接口,来处理该bean。
Spring是如何帮我们生成Bean的
BeanDefinitionReader
- 从xml文件、类路径下使用了@Component系列注解的类、或者从@Configuration注解的配置类,获取BeanDefintiions,然后注册到BeanFactory中。
通过BeanDefinitionReader从不同的方式,获取BeanDefintiions Bean的元数据,BeanDefintiions其实就是对Bean的一些元数据定义,
我们在通过BeanDefinitionRegistry将beanDefinition注册到BeanFacory中。
存储在BeanFactory的一个conCurrentHashMap中,
key为beanName
Value就是BeanDefinition元数据。
那么获取Bean就从conCurrentHashMap中通过BeanName获取对应的Bean信息。
Beanfactory
作用:Bean容器的根接口,提供Bean对象的创建、配置、依赖注入等功能。
Beanfactory常见的两个实现:
ApplicationConfigServletServerApplicationContext、DefaultListableBeanFactory。