SpringBean生命周期-初始化和销毁
程序员文章站
2022-06-03 09:06:19
...
Spring Bean初始化和销毁:
在实际开发中经常需要在Bean使用之前或者之后作写必要的操作,Spring对Bean的生命周期的操作提供了支持。下面是SpringBean的生命周期流程图:
根据上面的流程图我们有三种方式实现对Bean的生命周期进行操作:
- Java配置方式:使用@Bean的initMethod和destroyMethod(相当于xml配置的init-method和destroy-method)
- 注解方式:利用JSR-250的@PostConstruct和@PreDestroy
- 实现接口:分别实现接口InitializingBean和DisposableBean
代码:
//1. Java配置方式:使用@Bean的initMethod和destroyMethod(相当于xml配置的init-method和destroy-method)
public class BeanWayService {
public void init(){
System.out.println("BeanWayService 初始化");
}
public void destroy(){
System.out.println("BeanWayService 销毁");
}
}
//注解方式:利用JSR-250的@PostConstruct和@PreDestroy
public class Jsr250WayService {
@PostConstruct
public void init(){
System.out.println("Jsr250WayService method init");
}
@PreDestroy
public void destroy(){
System.out.println("Jsr250WayService method destroy");
}
}
// 实现接口:分别实现接口InitializingBean和DisposableBean
public class InitBean implements InitializingBean, DisposableBean {
@Override
public void afterPropertiesSet() throws Exception {
System.out.println( "InitBean 初始化完成" );
}
@Override
public void destroy() throws Exception {
System.out.println("InitBean 对象被销毁");
}
}
测试类
4. @Configuration
public class BeanConfig {
@Bean
public InitBean initBean(){
return new InitBean();
}
@Bean(initMethod = "init",destroyMethod = "destroy")
public BeanWayService beanWayService(){
return new BeanWayService();
}
@Bean
public Jsr250WayService jsr250WayService(){
return new Jsr250WayService();
}
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BeanConfig.class);
context.getBean(InitBean.class);
context.getBean(BeanWayService.class);
context.getBean(Jsr250WayService.class);
context.close();
}
}
通过执行main方法可以查看日志打印的初始化和销毁的打印信息.
推荐阅读
-
转 echarts 的使用时遇到的坑 初始化和销毁,亲测有效!
-
Spring5 - Bean的初始化和销毁的4种方式
-
Spring中bean的初始化和销毁几种实现方式详解
-
bean的作用域、初始化和销毁方法及生命周期
-
Spring中Bean的生命周期自定义销毁和初始化方法实现详解
-
SpringBean生命周期-初始化和销毁
-
Spring注解开发——12、生命周期[email protected]指定初始化和销毁方法
-
12、生命周期[email protected]指定初始化和销毁方法
-
生命周期(一)[email protected]指定初始化和销毁方法
-
【spring注解驱动开发】-生命周期 - @Bean自定义初始化和销毁