Spring框架

2.8  bean的生命周期

  • Spring IOC容器可以管理bean的生命周期,Spring允许在bean生命周期内特定的时间点执行指定的任务。
  • Spring IOC容器对bean的生命周期进行管理的过程:

         ① 通过构造器或工厂方法创建bean实例

         ② 为bean的属性设置值和对其他bean的引用

         ③ 调用bean的初始化方法

         ④ bean可以使用了

         ⑤ 当容器关闭时,调用bean的销毁方法

  • 在配置bean时,通过init-method和destroy-method 属性为bean指定初始化和销毁方法
  • bean的后置处理器

         ① bean后置处理器允许在调用初始化方法前后对bean进行额外的处理

         ② bean后置处理器对IOC容器里的所有bean实例逐一处理,而非单一实例。其典型                 应用是:检查bean属性的正确性或根据特定的标准更改bean的属性。

         ③ bean后置处理器时需要实现接口:

org.springframework.beans.factory.config.BeanPostProcessor。在初始化方法被调用前后,Spring将把每个bean实例分别传递给上述接口的以下两个方法:

  • postProcessBeforeInitialization(Object, String)
  • postProcessAfterInitialization(Object, String)
  • 添加bean后置处理器后bean的生命周期

         ①通过构造器或工厂方法创建bean实例

         ②为bean的属性设置值和对其他bean的引用

         ③将bean实例传递给bean后置处理器的postProcessBeforeInitialization()方法

         ④调用bean的初始化方法

         ⑤将bean实例传递给bean后置处理器的postProcessAfterInitialization()方法

         ⑥bean可以使用了

         ⑦当容器关闭时调用bean的销毁方法

2.9 引用外部属性文件

         当bean的配置信息逐渐增多时,查找和修改一些bean的配置信息就变得愈加困难。这时可以将一部分信息提取到bean配置文件的外部,以properties格式的属性文件保存起来,同时在bean的配置文件中引用properties属性文件中的内容,从而实现一部分属性值在发生变化时仅修改properties属性文件即可。这种技术多用于连接数据库的基本信息的配置。

2.9.1 直接配置

<!-- 直接配置 -->

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

         <property name="user" value="root"/>

         <property name="password" value="root"/>

         <property name="jdbcUrl" value="jdbc:mysql:///test"/>

         <property name="driverClass" value="com.mysql.jdbc.Driver"/>

</bean>