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。

推薦閱讀: