3.4 自定义Bean的本质特征
3.4.1 生命周期接口
3.4.1.1 InitializingBean /init-method
实现该接口的bean在所有必须的属性被BeanFactory设置完成后,来进行初始化工作!仅仅制定了一个方法:
void afterPropertiesSet() throws Exception
通常该接口的使用可以避免,因为在配置Bean的时候可以指定init-method属性来指定一个初始化方法!
3.4.1.2 DisposableBean /destory-method
实现该接口的Bean,提供一个 void destory() throws Exception 方法来进行销毁时的操作。
通常该接口也能被避免,可以在设置的时候设置destory-method来指定一个方法进行销毁时的操作。
3.4.2 了解自己
3.4.2.1 BeanFactoryAware
对于实现了该接口的类,在被BeanFactory创建以后会反回一个指向创建它的BeanFactory的引用。主要用于编程式的取得其他Bean,应避免使用,因为增加了耦合度!
3.4.2.2 BeanNameAware
实现这个接口的bean在被BeanFactory创建时,会调用该接口告知Bean被创建的id,回调发生在必须的属性被设置之后,初始化回调之前(如:init-method)。
3.4.3 FactoryBean
该接口一般由本身是工厂类的对象实现,提供三个方法:
Object getObject() 必须返回这个工厂类创建的对象
boolean isSingleton()
Class getObjectType() 返回getObject()返回的对象的类型,不是预先知道的就返回null
3.5 子Bean的定义