InitializingBean

来源:互联网 发布:换手率炒股软件 编辑:程序博客网 时间:2024/06/06 05:01

Spring的InitializingBean为bean提供了定义初始化方法的试。它是一个接口,仅仅包含一个方法:afterPropertiesSet()。在Spring初始化后,执行完所有属性设置方法(即setXxx)将自动调用afterPropertiesSet()。在配置文件中无须特别的配置。

一旦bean实现了InitializingBean接口,那么这个bean的代码就和Spring耦合到一起了,通常情况下还可以使用Spring提供的init-method的功能来执行一个定义的初始化方法。

package research.spring.beanfactory.ch4;public class LifeCycleBean{public void init(){System.out.println("LifeCycleBean.init...");}}

在Spring中配置这个Bean:

xml version="1.0" encoding="UTF-8"?>DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean name="lifeBean" class="research.spring.beanfactory.ch4.LifeCycleBean" init-method="init">bean>beans>

Spring要求init-method是一个无参数的方法,init-method指定的方法可以是public、protected以及private的,并且方法也可以是final的。


当InitializingBean和init-method可以一起使用,Spring会先处理InitializingBean再处理init-method。init-method是通过反射执行的,而afterPropertiesSet是直接执行的。所以afterPropertiesSet的执行效率比init-method要高,不过init-method消除了bean对Spring的依赖。

0 0
原创粉丝点击