Spring对Bean的生命周期,做了支持,便于在使用Bean之前或之后做一些其他操作。
支持两种方式:java配置和JSR-250
java配置:使用@Bean:@Bean(initMethod=“init”,destroyMethod=“destroy”)
JSR-250:@PostConstruct表示初始化,@PreDestroy表示销毁。
使用JSR-250导入依赖:
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
java配置:
public class BeanWay {
public void ainit() {
System.out.println("java配置:初始化");
}
public BeanWay() {
super();
System.out.println("java配置:创建对象");
}
public void adestroy() {
System.out.println("java配置:销毁");
}
}
JSR-250注解:
public class Jsr250Way {
@PostConstruct
public void init() {
System.out.println("JSR-250:初始化");
}
public Jsr250Way() {
super();
System.out.println("JSR-250:构造函数");
}
@PreDestroy
public void destroy() {
System.out.println("JSR-250:销毁");
}
}
JSR-250注解方式:
@PostConstruct:初始化
@PreDestroy:销毁
配置类:
@Configuration
@ComponentScan("com.demo02.bean")
public class BeanConfig {
@Bean(initMethod="ainit",destroyMethod="adestroy")
public BeanWay beanWay() {
return new BeanWay();
}
@Bean
public Jsr250Way jsr250Way() {
return new Jsr250Way();
}
}
@Bean(initMethod="ainit",destroyMethod="adestroy"):表示为java配置方式,initMethod和destroyMethod的值需对应方法名。
使用JSR-250注解方式,直接在bean中定义时,使用@PostConstruct(初始化),@PreDestroy(销毁)进行了说明。