没有合适的资源?快使用搜索试试~ 我知道了~
spring BeanPostProcessor 生命周期
2 下载量 71 浏览量
2020-12-22
03:52:51
上传
评论
收藏 139KB PDF 举报
温馨提示
试读
6页
BeanPostProcessor:后置处理器 spring使用模板模式,在bean的创建过程中安插了许多锚点,用户寻找对应的锚点,通过重写方法介入到bean的创建过程当中。本节通过重写这些锚点,学习如何使用BeanPostProcessor、获取各类BeanAware并且理清bean的生命周期 代码 控制台 // 控制台的输出结果 1. postProcessBeforeInstantiation被调用 2. 构造方法被调用,name:小小 3. postProcessAfterInstantiation被调用 4. postProcessProperties被调用 5. BeanNameA
资源推荐
资源详情
资源评论
spring BeanPostProcessor 生命周期生命周期
BeanPostProcessor:后置处理器
spring使用模板模式,在bean的创建过程中安插了许多锚点,用户寻找对应的锚点,通过重写方法介入到bean的创建过程当
中。本节通过重写这些锚点,学习如何使用BeanPostProcessor、获取各类BeanAware并且理清bean的生命周期
代码代码
控制台
// 控制台的输出结果
1. postProcessBeforeInstantiation被调用
2. 构造方法被调用,name:小小
3. postProcessAfterInstantiation被调用
4. postProcessProperties被调用
5. BeanNameAware被调用, 获取到的beanName:lifeCycleBean
6. BeanFactoryAware被调用,获取到beanFactory:org.springframework.beans.factory.support.DefaultListableBeanFactory@117e949d: defining beans
[lifeCycleBean,lifeCycleBeanPostProcessor]; root of factory hierarchy
7. ApplicationContextAware被调用,获取到ApplicationContextAware:
org.springframework.context.support.ClassPathXmlApplicationContext@71e9ddb4, started on Sat Feb 22 20:30:35 CST 2020
8. postProcessBeforeInitialization被调用,把name改成中中
9. afterPropertiesSet被调用
10. myInit自定义初始化方法被调用,name:中中
11. postProcessAfterInitialization被调用,把name改成大大
12. bean创建完成 name: 大大
13. DisposableBean被调用
14. destroy-method自定义销毁方法被调用
Process finished with exit code 0
创建类LifeCycleBean
public class LifeCycleBean implements
BeanNameAware,
BeanFactoryAware,
ApplicationContextAware,
InitializingBean,
DisposableBean {
private BeanFactory beanFactory;
private ApplicationContext applicationContext;
private String name;
public LifeCycleBean(String name) {
System.out.println("2. 构造方法被调用,name:" + name);
this.name = name;
}
@Override
public void setBeanName(String name) {
System.out.println("5. BeanNameAware被调用, 获取到的beanName:" + name);
}
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.beanFactory = beanFactory;
System.out.println("6. BeanFactoryAware被调用,获取到beanFactory:" + beanFactory);
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
System.out.println("7. ApplicationContextAware被调用,获取到ApplicationContextAware:" + applicationContext);
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("9. afterPropertiesSet被调用");
}
public void myInit() {
资源评论
weixin_38703787
- 粉丝: 5
- 资源: 889
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现对表面肌电信号进行归一化处理,并对归一化后的图形显示 .rar
- 基于matlab实现单级倒立摆的 T-S 模型 包括 LMI 程序源码
- 图书管理系统(struts+hibernate+spring+ext).rar
- 基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
- STM32使用PWM驱动舵机并通过OLED显示
- 基于matlab实现车辆路径规划;遗传算法;matlab代码.rar
- 图书管理系统(struts+hibernate+spring)130225.rar
- 基于matlab实现采用标量衍射理论,实现菲涅尔衍射和夫琅禾费衍射,对光波的波前传播和数字全息的应用有帮助.rar
- JavaScript版去除链表重复元素
- 微信小程序项目-功德木鱼(带设置面板-自定义文字、可选字体颜色、可选木鱼样式)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功