spring bean生命周期之初始化和销毁的三种方式
1 spring-bean生命周期之初始化和销毁的三种方式
spring-bean生命周期之初始化和销毁的三种方式
- 注解bean之指定init-method/destroy-method
- 实现InitializingBean/DisposableBean接口
- @PostConstruct和@PreDestroy注解
1.1,注解bean之指定init-method/destroy-method
这种方式其实在之前的一篇文章深入理解spring注解之@Bean注解就有介绍过,这边再简单演示如下:
配置类中增加一个bean如下:
1 2 3 4 5 6 7 8 9
|
@Bean(value="user0",initMethod="initUser",destroyMethod="destroyUser") public User getUser(){ System.out.println("创建user实例"); return new User("张三",26); }
|
User中增加两个方法如下:
1 2 3 4 5 6
| public void initUser(){ System.out.println("初始化用户bean之前执行"); } public void destroyUser(){ System.out.println("bean销毁之后执行"); }
|
1.2,实现InitializingBean/DisposableBean接口
定义一个bean实现InitializingBean/DisposableBean接口如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public class User1 implements InitializingBean,DisposableBean{ public User1(){ System.out.println("实例化bean"); } public void destroy() throws Exception { System.out.println("bean销毁之后执行"); } public void afterPropertiesSet() throws Exception { System.out.println("初始化用户bean之前执行"); } }
|
配置类中增加配置如下:
1 2 3 4
| @Bean public User1 getUser1(){ return new User1(); }
|
1.3,@PostConstruct和@PreDestroy注解
定义一个bean对象User3增加两个方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public class User3 { public User3(){ System.out.println("实例化bean"); } @PostConstruct public void initUser(){ System.out.println("初始化用户bean之前执行"); } @PreDestroy public void destroyUser(){ System.out.println("bean销毁之前执行"); } }
|
配置类中增加配置如下:
1 2 3 4
| @Bean public User3 getUser3(){ return new User3(); }
|
本文大部分转自:
51CTO博客-知了123