spring学习(3)
bean的声明周期
为什么把生命周期当做一个重点?
Servlet->servlet生命周期
Servlet生命周期分为三个阶段:
1:初始化阶段,调用init()方法
2:响应客户请求阶段,调用service()方法
3:终止阶段,调用destory()方法
bean的生命周期
①实例化(当我们的程序加载beans.xml文件),把我们的bean(前提是scope=singleton)实例化到内存中
②调用set方法设置属性。
③如果你实现了bean名字关注接口(BeanNameAware)则,可以通过setBeanName获取id号
④如果i实现了bean工厂关注接口,则(BeanFactoryAware)可以获取beanFactory。
⑤如果你实现了ApplicationContextAware接口,则调用方法:
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
System.out.println("ApplicationContextAware" + arg0);
}
⑥如果bean和一个后置处理器关联了,则会自动去调用before方法
public Object postProcessAfterInitialization(Object arg0, String arg1)
throws BeansException {
System.out.println("postProcessAfterInitialization方法被调用");
return arg0;
}
⑦如果实现了InitializingBean接口,则会调用postProcessBeforeInitialization()方法
⑧如果自己在<bean init-method="init"/> 则可以在bean中定义自己的初始化方法
⑨如果bean和一个后置处理器关联了,则会自动去调用方法postProcessAfterInitialization()方法
⑩使用我们的bean
11.容器关闭
12可以通过实现DisposableBean接口来调用destroy
13.可以在<bean destroy-method=""/>调用定制的销毁方法。
小结:在实际开发中,往往没有用到这么多的过程,常见的是:
1->2->6->9->10->11
如果需要关闭特定的资源,可以使用13.
需求:
1.记录每个对象,被实例化的实际
2.过滤每个调用对象Ip
3.给所有对象添加属性,或者函数,=>aop(面向切面编程,针对所有对象编程)
aop初探:
beans.xml中有两个bean。所以输出如下所示:
问题:通过BeanFactory来获取bean对象,bean的生命周期是否和ApplicationContext获取的bean的一样?
不一样,没有ApplicationContextAware...,bean在工厂中创建的生命周期会简单一些。
spring学习(3)的更多相关文章
- spring 学习之 bean 的注入方式 property和constructor-arg的使用方式
spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...
- Spring学习之AOP总结帖
AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...
- Spring学习之第一个AOP程序
IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...
- MyEclipse Spring 学习总结三 SpringMVC
MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...
- Spring学习 Ioc篇(一 )
一直以来忙于项目的开发,Spring虽然不用,一直想系统地学习一下,想看看它的源码,都没有时间,这段时间比较充裕,就索性先把Spring学习下,熟悉各个功能再去探究它内部的实现.就从Ioc篇开始学习. ...
- Spring学习(三)——Spring中的依赖注入的方式
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...
- Spring学习(二)——Spring中的AOP的初步理解[转]
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- Spring学习8-Spring事务管理
http://blog.sina.com.cn/s/blog_7ffb8dd501014e0f.html Spring学习8-Spring事务管理(注解式声明事务管理) 标签: spring注 ...
- Spring学习之Ioc控制反转(1)
开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...
随机推荐
- ajaxFileUpload 实现多文件上传(源码)
按照原ajaxFileUpload.js是不能多文件上传的.需要对源码进行修改:主要修改了fileElementId部分 具体参考 https://blog.csdn.net/itmyhome1990 ...
- Laravel核心之IOC和Facade 架构分析1
控制反转(Inversion of Control) 缩写为IoC 最常见的方式叫做依赖注入 简单说来,就是一个类把自己的的控制权交给另外一个对象,类间的依赖由这个对象去解决. Laravel 中的使 ...
- Effective C++ 49,50
49.熟悉标准库. C++标准库非常大. 首先标准库中函数非常多,为了避免名字冲突.使用命名空间std.而之前的库函数都存放于< .h>中,如今成为伪标准库.而不能直接将这些头文件所有直接 ...
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型 Office 2 ...
- Android拍照生成缩略图
在Android 2.2版本中,新增了一个ThumbnailUtils工具类来是实现缩略图,此工具类的功能是强大的,使用是简单,它提供了一个常量和三个方法.利用这些常数和方法,可以轻松快捷的实现图片和 ...
- JS获取图片的缩略图
js获取上传文件的缩略图 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- Hadoop DataNode 节点的动态添加和动态删除
动态添加 DataNode 节点 hadoop环境是必须的 需要加入新的 DataNode 节点,前提是已经配置好 SSH 无密登录:直接复制已有DataNode中.ssh目录中的authorized ...
- zookeepeer ID生成器 (一)
目录 写在前面 1.1. ZK 的分布式命名服务 1.1.1. 分布式 ID 生成器的类型 UUID方案 1.1.2. ZK生成分布式ID 写在最后 疯狂创客圈 亿级流量 高并发IM 实战 系列 疯狂 ...
- spring AOP操作
在spring进行AOP操作,使用aspectj实现 一.aspectj准备 aspectj不是spring的一部分,和spring一起使用进行AOP的操作 1.除了spring基本的jar包还需要导 ...
- HDU 4513 吉哥系列故事――完美队形II(Manacher)
题目链接:cid=70325#problem/V">[kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher V - 吉哥系列故事――完美队形I ...