Spring4.0学习笔记(5) —— 管理bean的生命周期
Spring IOC 容器可以管理Bean的生命周期,Spring允许在Bean生命周期的特定点执行定制的任务
Spring IOC 容器对Bean的生命周期进行管理的过程:
1、通过构造器或工厂方法创建Bean的实例
2、为Bean的属性设置值和对其他Bean的引用
3、调用Bean的初始化方法
4、Bean可以使用了
5、当容器关闭时,调用Bean的销毁方法
bean文件
package com.spring.cycle;public class Car {public Car(){System.out.println("Car's constructor...");}@Overridepublic String toString() {return "Car [brand=" + brand + "]";}private String brand;public void setBrand(String brand){System.out.println("setBrand...");this.brand = brand;}public void init(){System.out.println("init...");}public void destroy(){System.out.println("destroy...");}}
配置文件
<?xml version="1.0" encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><bean id="car" class="com.spring.cycle.Car" init-method="init" destroy-method="destroy"><property name="brand" value="Audi"></property></bean><bean class="com.spring.cycle.MyBeanPostProcesser"></bean> </beans>
package com.spring.cycle;import org.springframework.context.support.ClassPathXmlApplicationContext;public class main {public static void main(String[] args) {ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("bean-cycle.xml");Car car = (Car)ctx.getBean("car");System.out.println(car);//关闭IOC容器 ctx.close();} }
postProcessAfterInitialization 和 postProcessBeforeInitialization
package com.spring.cycle;import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor;public class MyBeanPostProcesser implements BeanPostProcessor {public Object postProcessAfterInitialization(Object arg0, String arg1)throws BeansException {System.out.println("postProcessAfterInitialization"+arg1);return arg0;}public Object postProcessBeforeInitialization(Object arg0, String arg1)throws BeansException {System.out.println("postProcessBeforeInitialization"+arg1);return arg0;}}
bean的生命周期
Car's constructor... 【调用构造器】
setBrand... 【设置属性】
postProcessBeforeInitializationcar 【实例化方法前】
init...【实例化bean】
postProcessAfterInitializationcar 【实例化方法后】
Car [brand=Audi] 【调用toString()方法】
destroy... 【销毁bean】
转载于:https://www.cnblogs.com/cklovefan/p/5293180.html
Spring4.0学习笔记(5) —— 管理bean的生命周期相关推荐
- Vue 学习笔记(2)Vue 生命周期、组件
Vue Vue 生命周期 Vue 中组件(Component) 全局组件的开发 局部组件的开发 组件中 props 的使用 在组件上声明静态数据传递给组件内部 在组件上声明动态数据传递给组件内部 pr ...
- Spring4.0学习笔记(3) —— Spring_Bean之间的关系
1.继承关系 bean-relation.xml <?xml version="1.0" encoding="UTF-8"?> <beansx ...
- EJB3.0学习笔记---Stateless Session Bean的原理:
新年啦:开通自己的CSDN博客:http://blog.csdn.net/lidew521/ 1.Stateless Session Bean的原理:不是说EJB不可以有状态,而是说EJB不对他 的状 ...
- EJB3.0学习笔记-----Stateful Session Bean的原理
和Http Session十分的类似: EJB服务器返回的是一个实现了FirstEjb接口的一个代理对象. EJB池中有很多对象;一个EJB可能有多个对象,和Session对象一样,多个对 ...
- Spring管理Bean的生命周期
1.通过构造器或工厂方法创建对象 2.注入属性 3.后置处理器前置处理 4.调用初始化方法 5.后置处理器后置处理 6.使用Bean 7.销毁Bean
- NPDP学习笔记(七)产品生命周期
这是本主题笔记最后一篇,最近由于身体不好,工作上也遇到了很多坎坷,很久没有更新.意外竟然有读者留言询问,很开心能带给别人些许价值,故将本主题更新完整!避免太监~
- libgdx 学习笔记七 libgdx应用程序生命周期
简介 本章内容描述libGDX 应用程序的结构和怎么根据不同的平台版本使用不同的后台 The Application 做为任意libGDX 工程的主入口点.Application 决定平台的版本和后台 ...
- Spring全家桶(四)Bean的生命周期
十.Bean生命周期 10.1 Bean的生命周期 Spring IOC容器可以管理Bean的生命周期,也允许在Bean生命周期的特定点执行定制的任务. Spring IOC容器对Bean的生命周期进 ...
- IOC容器中bean的生命周期,iocbean生命周期
原文地址:http://www.bkjia.com/Javabc/1149957.html IOC容器中bean的生命周期,iocbean生命周期 一.Bean的生命周期 Spring IOC容器可以 ...
最新文章
- 利用Caffe训练模型(solver、deploy、train_val) + python如何使用已训练模型
- VMware 虚拟化编程(11) — VMware 虚拟机的全量备份与增量备份方案
- 润乾报表与DERBY数据库的创建连接详解
- Android中利用OpenMax 编程的基本流程
- (65)DDR工作效率?
- SVM支持向量机习题解答
- Idea中上传项目到Github
- php codeigniter,PHP项目中CodeIgniter使用的一些建议
- DIY,PC采购,服务器介绍
- 软件质量保证和软件配置管理
- 无穷小微积分词汇索引怎么使用?
- 微信支付/退费(服务商)模式
- 【数论】因数与倍数(一)质数与合数
- LaTeX 注释快捷键
- 计算机图形学三(补充):重心坐标(barycentric coordinates)详解及其作用
- 【2020.12】Aspose.words 20.12最新版Crack,word转pdf去水印方法
- spingMVC 引用实体类绑定,中文乱码过滤器,时间类型转换器 。案例配置步骤
- 实现doubly-linked list搞清楚了一个内存问题
- Webex Player 安装文件,解决了不能播放问题,win7也能使用
- 【Unity Shader】屏幕后处理2.0:实现Sobel边缘检测
热门文章
- 图像超分辨率增强ESRGAN运行教程,有数据
- 基于web的通用文本标注工具MarkTool in NLP
- 文本分类器,可自由加载BERT、Bert-wwm、Roberta、ALBert以及ERNIE1.0
- 如何选择神经网络的超参数
- c语言计算器程序代码 链栈,【C语言】简易科学计算器源代码(链栈应用)(原创).doc...
- python在linux编程_python要在linux下编程吗
- C语言中忽略scanf的价值,c语言的scanf接收到底是忽略空格还是不忽略呢?
- java多端登录_【Java】一个登录功能也能玩出这么多花样?sa-token带你轻松搞定多地登录、单地登录、同端互斥登录...
- python的networkx 算法_python图算法库Networkx笔记 - Node and Centrality
- [每日一题] OCP1z0-047 :2013-07-15 drop column