===================== 对象的生命周期_初始化 ===================== Spring工厂在完成对象的创建以后,会调用对象的初始化方法,设置对象的初始状态 - 初始化方法由程序设计者提供 - 初始化方法由Spring工厂调用 程序设计者如何提供初始化方法? 1 第一种方式 实现InitializingBean接口,覆盖afterPropertiesSet()方法,将初始化对象的代码写在这个方法里,等着Spring工厂来调用。 /src/main/java/cn/tedu/injection/Product.java: public class Product implements InitializingBean { ... @Override public void afterPropertiesSet() throws Exception { logger.debug("Product.afterPropertiesSet"); } ... } Before ApplicationContext After ApplicationContext Before getBean Product.Product Product.afterPropertiesSet <- Spring工厂调用接口中的初始化方法 After getBean cn.tedu.injection.Product@48aca48b 例程:Injection 2 第二种方式 实现InitializingBean接口,也是一种来自Spring的侵入。 随便定义一个方法执行初始化操作,通过配置文件告知Spring在初始化对象时调用该方法。 /src/main/java/cn/tedu/injection/Product.java: public class Product { ... public void init() { logger.debug("Product.init"); } ... } /src/main/resources/applicationContext.xml: Before ApplicationContext Product.Product Product.init <- Spring工厂调用自定义的初始化方法 After ApplicationContext Before getBean After getBean cn.tedu.injection.Product@6bd61f98 例程:Injection