SpringのBeanのライフサイクル


ビーンのライフサイクルとは?
ビーンのライフサイクルとは、ビーンの作成→初期化→廃棄の過程を指します.ビーンの初期化と廃棄方法をカスタマイズしてビーンが現在のライフサイクルに進行する時に、カスタムの初期化と廃棄方法を呼び出すことができます.
初期化と廃棄――カスタム方法
私たちはBikeクラスを作成します.
public class Bike {
	public Bike() {
		System.out.println("Bike     ");
	}
	public void init() {
		System.out.println("Bike init");
	}
	public void destroy() {
		System.out.println("Bike destory");
	}
}
Bike類を@BeanでIOC容器に添加し、初期化と廃棄方法を配置する.
@Bean(initMethod="init",destroyMethod="destroy")
私たちはそれをテストします.
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(MainConfig.class);
ac.close();
プログラム運転の結果は以下の通りです.
Bike     
Bike init
Bike destory
ビーンの作成中にまず構造方法を実行して、初期化方法を呼び出して、私たちがac.close()方法を呼び出すと、ビーンのdestory方法が呼び出されることが見られます.単一のインスタンスのBeanに対しては、複数のインスタンスのBeanに対して、初期化と廃棄方法を正常に呼び出すことができますが、コンテナは初期化を担当しますが、Beanを管理しません.
初期化と廃棄――インターフェースの実現
1、InitializingBenインターフェースを実現するafterPropertiesset()方法は、BenFactoryがオブジェクトを作成し、Beanのすべての属性を設定した後、この方法を呼び出すことができます.初期化方法に相当します.2、DispposableBenのdestoryを実現する方法は、Beanが破壊された時に、シングルインスタンスBeanを破壊します.
public class Bike implements InitializingBean, DisposableBean {
	public Bike() {
		System.out.println("Bike     ");
	}
	// bean         ,BeanFactory      
	public void afterPropertiesSet() throws Exception {
		System.out.println("Bike init method");
	}
	// BeanFactory        
	public void destroy() throws Exception {
		System.out.println("Bike destroy method");
	}
}
初期化と廃棄――注釈使用
@PostConstruct、@Predestry注解@PostConstructを使用できます.ビーンの作成が完了し、赋値完了後に初期化します.JDK仕様の注釈@Predestroy:ビーンが除去される前に通知して、容器廃棄前に整理作業を行います.
public class Bike {
	public Bike() {
		System.out.println("Bike     ");
	}
	@PostConstruct
	public void init() {
		System.out.println("Bike init @PostConstruct");
	}
	@PreDestroy
	public void destroy() {
		System.out.println("Bike destory @PreDestroy");
	}
}