揭秘Spring(五)之init-method与destroy-method
前言
上一节中我们说了bean的初始化调整以及销毁逻辑的两个接口,可以看到非常方便,但是不得不承认具有一定的侵略性,迫使我们改变了原有的很单纯的bean而不得不实现接口,本节中就提供另外的替代方法。
init-method || destroy-method
@Configuration
public class config {
@Bean(initMethod = "init",destroyMethod = "close")
public Account account(){
return new Account("fff");
}
}
public class Account {
private String name;
// setter getter constructor
public void init() throws Exception {
this.setName("bbfff");
}
public void close() throws Exception {
System.out.println("exit...##############################################");
}
}
@Test
public void tt(){
System.out.println(account.getName());
}
bbfff 2019-11-10 15:15:40.536 INFO 22056 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor : Shutting down ExecutorService applicationTaskExecutor exit...##############################################
输出和上一节一摸一样,可以看到主要是在config中的bean定义处设置了init-method 和 destroy-method ,同时,用这种方法,我们的方法名也是完全自己定义,比如我就定义为了 init 和 close ,在Account中也不需要再实现复杂的接口。
总结
其实看了上一节,本节基本没啥可看的了。我们平时这两种方式条一种就可以了,如果真相都用的话,前一节的两个方法执行时机均比本节两个方法早一步,其实大概很少会两个都用啦,所以我就不再实验,感兴趣的小伙伴儿可以自己去试下~
