SpringのBeanのライフサイクル
ビーンのライフサイクルとは?
ビーンのライフサイクルとは、ビーンの作成→初期化→廃棄の過程を指します.ビーンの初期化と廃棄方法をカスタマイズしてビーンが現在のライフサイクルに進行する時に、カスタムの初期化と廃棄方法を呼び出すことができます.
初期化と廃棄――カスタム方法
私たちはBikeクラスを作成します.
初期化と廃棄――インターフェースの実現
1、InitializingBenインターフェースを実現するafterPropertiesset()方法は、BenFactoryがオブジェクトを作成し、Beanのすべての属性を設定した後、この方法を呼び出すことができます.初期化方法に相当します.2、DispposableBenのdestoryを実現する方法は、Beanが破壊された時に、シングルインスタンスBeanを破壊します.
@PostConstruct、@Predestry注解@PostConstructを使用できます.ビーンの作成が完了し、赋値完了後に初期化します.JDK仕様の注釈@Predestroy:ビーンが除去される前に通知して、容器廃棄前に整理作業を行います.
ビーンのライフサイクルとは、ビーンの作成→初期化→廃棄の過程を指します.ビーンの初期化と廃棄方法をカスタマイズしてビーンが現在のライフサイクルに進行する時に、カスタムの初期化と廃棄方法を呼び出すことができます.
初期化と廃棄――カスタム方法
私たちは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");
}
}