在Spring容器中Bean的几种初始化、销毁方法的实现和先后顺序
来源:互联网 发布:软件授权码商城 编辑:程序博客网 时间:2024/05/17 22:43
1.实现方式
- 通过实现InitializingBean/DisposableBean 接口来定制初始化之后/销毁之前的操作方法。
- 通过 元素的 init-method/destroy-method属性指定初始化之后 /销毁之前调用的操作方法;
- 在方法上加上@PostConstruct或@PreDestroy注解来实现该方法是在初始化之后还是销毁之前调用。
2.代码实现
package com.tansen.shop.test;import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import org.springframework.beans.factory.DisposableBean;import org.springframework.beans.factory.InitializingBean;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * 测试spring容器中,bean的生命周期 * @author tansen * @version 2017年12月14日上午10:47:27 */public class TestSpringLifeCycle implements InitializingBean,DisposableBean{ @Override public void destroy() throws Exception { System.out.println("实现DisposableBean接口的销毁..."); } @Override public void afterPropertiesSet() throws Exception { System.out.println("实现InitializingBean在初始化之前..."); } public TestSpringLifeCycle() { System.out.println("TestSpringLifeCycle调用构造方法..."); } @PostConstruct private void postConstruct() { System.out.println("@PostConstruct注解方式初始化..."); } @PreDestroy private void preDestroy() { System.out.println("@PreDestroy注解方式销毁..."); } public void initMethod() { System.out.println("配置xml方式初始化..."); } public void destroyMethod() { System.out.println("配置xml方式销毁..."); } public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext-test.xml"); context.close(); }}
3.最终结果
构造方法—>@PostConstruct注解方式—>实现InitializingBean初始化—>配置spring.xml方式初始化
@PreDestroy注解方式销毁—>实现DisposableBean接口的销毁—>配置spring.xml方式销毁
[INFO ] 2017-12-14 10:38:08 AbstractApplicationContext@(AbstractApplicationContext.java:512):Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@4038202: startup date [Thu Dec 14 10:38:08 CST 2017]; root of context hierarchy[INFO ] 2017-12-14 10:38:08 XmlBeanDefinitionReader@(XmlBeanDefinitionReader.java:316):Loading XML bean definitions from class path resource [applicationContext-test.xml][INFO ] 2017-12-14 10:38:08 DefaultListableBeanFactory@(DefaultListableBeanFactory.java:603):Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4da4826b: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,testSpringLifeCycle,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchyTestSpringLifeCycle调用构造方法...@PostConstruct注解方式初始化...实现InitializingBean在初始化之前...配置xml方式初始化...[INFO ] 2017-12-14 10:38:08 AbstractApplicationContext@(AbstractApplicationContext.java:1044):Closing org.springframework.context.support.ClassPathXmlApplicationContext@4038202: startup date [Thu Dec 14 10:38:08 CST 2017]; root of context hierarchy[INFO ] 2017-12-14 10:38:08 DefaultSingletonBeanRegistry@(DefaultSingletonBeanRegistry.java:444):Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4da4826b: defining beans [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,testSpringLifeCycle,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy@PreDestroy注解方式销毁...实现DisposableBean接口的销毁...配置xml方式销毁...
阅读全文
1 0
- 在Spring容器中Bean的几种初始化、销毁方法的实现和先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中的Bean几种初始化方法和销毁方法的先后顺序
- Spring容器中定义Bean几种初始化方法和销毁方法
- Spring容器中bean的初始化和销毁工作
- 关于在spring 容器初始化 bean 和销毁前所做的操作定义方式有三种
- Spring中初始化bean和销毁bean的时候执行某个方法的详解
- 送书福利又来了,总共10本程序员技术书
- 18B20时序要点 stm32 72M环境
- (9)隐蔽通道重点知识复习笔记
- Could not initialize class sun.awt.X11GraphicsEnvironment解决
- dedecms完全禁止缓存文件的生成
- 在Spring容器中Bean的几种初始化、销毁方法的实现和先后顺序
- Swift多语言版本的创建
- MVP模式在Android实际项目中的应用和优化
- 依赖三方框架报V4包冲突的处理方案一
- c++: Boost/algorithm/string.hpp 和 curl/curl.h 编译错误
- 第十五周——项目一—验证算法(4)交换排序之快速排序
- 傅里叶分析学习
- 11111111111
- 第四周——自建单链表算法库