好记性不如烂笔头86-spring3学习(7)-ApplicationContext中bean的生命周期
来源:互联网 发布:数控车g73图纸事例编程 编辑:程序博客网 时间:2024/05/16 06:00
如果使用ApplicationContext来生成、管理Bean, 一个Bean从建立到销毁,会历经几个执行阶段。
我个人理解一般的bean的生命周期主要包括:建立,初始化,使用阶段,销毁四个核心阶段。使用ApplicationContext 和BeanFactory对bean的生命周期来看,宏观上基本相同,微观上有一些差异。
如果使用ApplicationContext来生成并管理Bean,在执行BeanfactoryAware的
setBeanFactory()阶段之后,若Bean类上有实现org.springframework.context.ApplicationContextAware接口,则执行setApplicationContext()方法,接着才继续进行BeanPostProcessors的processBeforeInitialization()及之后的流程。
在非WEB应用程序中,若想在关闭容器之前调用Bean定义文件中Singleton的Bean所设置的destroy方法,则可以执行AbstractApplicationContext的registerShutdownHook()方法,并向JVM注册相关方法,例如:
AbstractApplicationContext context = new ClassPathXmlApplicationContext
(“beans-config.xml”);
context.registerShutdownHook();
//执行应用程序
在应用程序结束之前,Bean定义文件上所设置的destroy方法将会被调用执行。
如果使用BeanFactory,只有在使用getBean()方法真正取得Bean时,才会做实例化的动作;
如果使用ApplicationContext,则会预先针对Bean定义文件的内容,将所有的Bean实例化。如果这不是你想要的,可以在上设置”lazy-init”属性为”true,ApplicationContext 就不会在启动的时候针对该Bean作实例化的动作,例如:
<bean id="some" class="org.bearfly.bean.Some lazy-init="true"></bean>
- 好记性不如烂笔头86-spring3学习(7)-ApplicationContext中bean的生命周期
- 好记性不如烂笔头85-spring3学习(6)-BeanFactory 中bean的生命周期
- 好记性不如烂笔头84-spring3学习(5)-spring的ApplicationContext(应用上下文)
- 好记性不如烂笔头91-spring3学习(12)-bean的PostConstruct和PreDestroy
- 好记性不如烂笔头93-spring3学习(14)-spring事务传播机制的7剑客
- 好记性不如烂笔头88-spring3学习(9)-schema的配置的解读和说明
- 好记性不如烂笔头83-spring3学习(4)-spring的BeanFactory(IoC容器)
- 好记性不如烂笔头87-spring3学习(8)-IoC的理解和比喻
- 好记性不如烂笔头94-spring3学习(15)-用spring的jdbcTemplate简单访问数据库
- 好记性不如烂笔头97-spring3学习(18)-多线程模式下的spring事务
- 好记性不如烂笔头89-spring3学习(10)-spring3常用schema(持续整理)
- 好记性不如烂笔头82-spring3学习(3)-spring的Resource使用和传统方法的对比
- 好记性不如烂笔头98-spring3学习(19)-实施spring AOP事务的方法的漏网之鱼
- 好记性不如烂笔头
- 好记性不如烂笔头!!
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头
- 好记性不如烂笔头84-spring3学习(5)-spring的ApplicationContext(应用上下文)
- Python标准库:内置函数reversed(seq)
- SESSION的CRUD操作
- 过滤器不过滤某些地址实例
- 好记性不如烂笔头85-spring3学习(6)-BeanFactory 中bean的生命周期
- 好记性不如烂笔头86-spring3学习(7)-ApplicationContext中bean的生命周期
- 如何将ios应用从appstore转到企业版本
- php开发之命名规则
- linux epoll练习(客户端)
- (2.1.1.2)JVM内容:Java 内存区域和GC机制
- 泛型与及集合框架工具类
- Sicily 1926. 测试题
- Visual Studio原生开发的20条调试技巧
- JDK环境配置