Spring、容器与bean
Spring
Spring是一个可以开发应用的平台框架,集成了很多的模块,包括:
- Spring core
- Spring Aop
- Spring Aspect
- Spring ORM
- Spring JDBC
- Spring JMS
- Spring Web
容器
Spring的容器是其核心理念,主要是对容器中对象进行创建、链接并管理对象的生命周期。这些对象也称为bean。Spring容器可以通过配置元数据的信息了解到需要实例化哪些bean,并对其进行管理。配置元数据信息可以通过xml文件,注解等方式表示。
Spring提供了BeanFactory和ApplicationContext两种容器。
- BeanFactory仅有基本的DI功能,配置管理bean。
- ApplicationContext继承了BeanFactory,实现了AOP以及其他面向企业的功能,如果消息国际化等。
bean
bean是一个对象,可以通过元信息由容器创建管理。bean的生命周期包括bean的初始化以及销毁。
初始化过程如下:
- 容器寻找bean的信息,并实例化bean。
- 装配bean的属性
- 如果bean实现了BeanNameAware 接口,则工厂调用setBeanName方法,将bean的id传入。
- 如果bean实现了BeanFactoryAware 接口,则工厂调用setBeanFactory,将工厂本身传入
- 如果关联了BeanPostProcessor ,则调用postProcessorBeforeInitialization()方法
- 如果指定了ini-method,则调用他
- 如果关联了BeanPostProcessor,则调用postProcessorAfterInitialization()方法
消除方法
- 如果bean实现了DisposableBean接口,则执行destory方法
- 如果指定了destory方法,就执行他。