SpringIOC容器 Bean初始化和销毁回调
前言
Spring Bean 的生命周期:init(初始化回调)、destory(销毁回调),在Spring中提供了四种方式来设置bean生命周期的回调:
1.@Bean指定初始化和销毁方法
2.实现接口
3.使用JSR250
4.后置处理器接口
使用场景:
在Bean初始化之后主动触发事件。如配置类的参数。
1.@Bean指定初始化和销毁方法
public class Phone {private String name;private int money;//get setpublic Phone() {super();System.out.println("实例化phone");}public void init(){System.out.println("初始化方法");}public void destory(){System.out.println("销毁方法");}
}
@Bean(initMethod = "init",destroyMethod = "destory")
public Phone phone(){ return new Phone();
}
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BeanConfig5.class);
context.close();
打印输出:
实例化phone
初始化方法
销毁方法
2.实现接口
通过让Bean实现InitializingBean(定义初始化逻辑),DisposableBean(定义销毁逻辑)接口
public class Car implements InitializingBean, DisposableBean {public void afterPropertiesSet() throws Exception {System.out.println("对象初始化后");}public void destroy() throws Exception {System.out.println("对象销毁");}public Car(){System.out.println("对象初始化中");}}
打印输出:
对象初始化中
对象初始化后
对象销毁
3.使用JSR250
通过在方法上定义@PostConstruct(对象初始化之后)和@PreDestroy(对象销毁)注解
public class Cat{public Cat(){System.out.println("对象初始化");}@PostConstructpublic void init(){System.out.println("对象初始化之后");}@PreDestroypublic void destory(){System.out.println("对象销毁");}}
打印输出:
对象初始化
对象初始化之后
对象销毁
4.后置处理器接口
public class Dog implements BeanPostProcessor{public Dog(){System.out.println("对象初始化");}public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println(beanName+"对象初始化之前");return bean;}public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println(beanName+"对象初始化之后");return bean;}}
对象初始化
org.springframework.context.event.internalEventListenerProcessor对象初始化之前
org.springframework.context.event.internalEventListenerProcessor对象初始化之后
org.springframework.context.event.internalEventListenerFactory对象初始化之前
org.springframework.context.event.internalEventListenerFactory对象初始化之后
SpringIOC容器 Bean初始化和销毁回调相关推荐
- spring bean初始化及销毁你必须要掌握的回调方法。
转载自 spring bean初始化及销毁你必须要掌握的回调方法. spring bean在初始化和销毁的时候我们可以触发一些自定义的回调操作. 初始化的时候实现的方法 1.通过java提供的@Pos ...
- spring扩展点之二:spring中关于bean初始化、销毁等使用汇总,ApplicationContextAware将ApplicationContext注入...
<spring扩展点之二:spring中关于bean初始化.销毁等使用汇总,ApplicationContextAware将ApplicationContext注入> <spring ...
- Spring中Bean初始化和销毁的多种方式
Spring中Bean初始化和销毁的多种方式 一.Bean的多种初始化方式 1.PostConstruct注解 2.实现InitializingBean接口 3.声明init-method方法 二.B ...
- springboot bean、容器的初始化,销毁及事件捕捉
文章目录 1.Bean初始化后执行 2.Spring容器启动后执行 3.Spring 容器各个事件的回调 1.Bean初始化后执行 使用 spring 提供的 @PostConstruct 和 @Pr ...
- java两个栈怎么完成初始化_Spring bean初始化及销毁你必须要掌握的回调方法
spring bean在初始化和销毁的时候我们可以触发一些自定义的回调操作. 初始化的时候实现的方法 1.通过java提供的@PostConstruct注解: 2.通过实现spring提供的Initi ...
- ApplicationContext和Bean的初始化和销毁
本节来学习ApplicationContext和Bean的初始化和销毁 首先看一下ApplicationContext容器的初始化和销毁关闭过程. ApplicationContext启动的过程是在A ...
- 从源码深处体验Spring核心技术--基于Xml的IOC容器的初始化
IOC 容器的初始化包括 BeanDefinition 的 Resource 定位.加载和注册这三个基本的过程. 我们以ApplicationContext 为例讲解,ApplicationConte ...
- Spring(二)IOC容器的初始化流程
文章目录 一.Spring 核心容器类 1.1 BeanFactory 1.2 ApplicationContext 1.3 BeanDefinition 二.IOC容器的初始化 2.1 基于Xml的 ...
- SpringIOC容器中Bean的生命周期
SpringIOC容器 可以管理Bean的生命周期 Spring允许在Bean生命周期的特定点,执行定制的任务. SpringIOC容器中,Bean的生命周期如下: 1.通过构造器或工厂方法创建Bea ...
最新文章
- 网络管理员&MCSE2003之5:第1章 帐户和资源管理
- 数据结构 - 静态单链表的实行(C语言)
- lintcode-49-字符大小写排序
- 网易云音乐android api_网易云音乐怎么发布个人Mlog?网易云音乐发布个人Mlog的教程介绍...
- 计算机浮点数运算误差与解决误差的算法
- 核弹级漏洞,把 log4j 扒给你看!
- java自学笔记_JAVA自学笔记(4)
- python 自动运维架构师_运维架构师-Python 自动化运维开发-013
- 牛客练习赛21:A. 黑妹的游戏I
- 吊炸天的Kubernetes微服务图形化管理工具:Kuboard,必须推荐给你!
- 自动驾驶中的深度学习
- win7发现不了无线网络_Win7笔记本怎么设置wifi热点 Win7笔记本设置wifi热点方法【详解】...
- 基于数组的一个简单增删改查
- c语言编辑工具下载,Turbo C-Turbo C2.0-Turbo C下载 v2.0.0.0官方正式版-完美下载
- Jtopo对象属性大全
- 50份Word简历模板,全都免费领取,送给最需要的你
- 两张表之间进行数据库查询时的聚合函数用法
- matlab遥感图像分类
- STM32定时器产生指定个数脉冲
- 【笔记】两个根因分析方法:5WHYamp;10WHY