spring註解如何為bean指定InitMethod和DestroyMethod
spring註解為bean指定InitMethod和DestroyMethod
/** * 指定組建的init方法和destroy的幾種方法 * 1:在配置類中 @Bean(initMethod = "init",destroyMethod = "destory")註解指定 * 2:實現InitializingBean接口重寫其afterPropertiesSet方法,實現DisposableBean接口重寫destroy方法 * 3:利用java的JSR250規范中的@PostConstruct標註在init方法上,@PreDestroy標註在destroy註解上 */
需要註意的是:
- 單實例bean:容器啟動時創建對象
- 多實例bean:每次獲取時創建對象
初始化:
- 對象創建完成,賦值完成,調用初始化方法
銷毀:
- 單實例:容器關閉時調用
- 多實例:容器不會銷毀,隻能手動調用銷毀方法
下面是具體代碼
Car.java
public class Car { public Car() { System.out.println("Car's Constructor.."); } public void init(){ System.out.println("Car's Init..."); } public void destory(){ System.out.println("Car's Destroy..."); } }
配置類
@Bean(initMethod = "init",destroyMethod = "destory") public Car car(){ return new Car(); }
註意@Bean中的initMethod和destroyMethod
@Configuration public class AppConfig { @Bean(initMethod = "init") public Foo foo() { return new Foo(); } @Bean(destroyMethod = "cleanup") public Bar bar() { return new Bar(); } }
上述代碼中initMethod和destroyMethod後面沒有括號。
記住千萬不要帶括號。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java Spring Bean的生命周期管理詳解
- SpringBoot中的Bean的初始化與銷毀順序解析
- 使用spring容器在初始化Bean時前和後的操作
- 詳解Java如何使用註解來配置Spring容器
- 深入瞭解Spring的Bean生命周期