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)的更多相关文章

  1. spring 学习之 bean 的注入方式 property和constructor-arg的使用方式

    spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...

  2. Spring学习之AOP总结帖

    AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...

  3. Spring学习之第一个AOP程序

    IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...

  4. MyEclipse Spring 学习总结三 SpringMVC

    MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...

  5. Spring学习 Ioc篇(一 )

    一直以来忙于项目的开发,Spring虽然不用,一直想系统地学习一下,想看看它的源码,都没有时间,这段时间比较充裕,就索性先把Spring学习下,熟悉各个功能再去探究它内部的实现.就从Ioc篇开始学习. ...

  6. Spring学习(三)——Spring中的依赖注入的方式

    [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...

  7. Spring学习(二)——Spring中的AOP的初步理解[转]

      [前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...

  8. 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展

    <Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...

  9. Spring学习8-Spring事务管理

      http://blog.sina.com.cn/s/blog_7ffb8dd501014e0f.html   Spring学习8-Spring事务管理(注解式声明事务管理) 标签: spring注 ...

  10. Spring学习之Ioc控制反转(1)

    开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...

随机推荐

  1. linux网络及防火墙配置命令

      /etc/sysconfig/network 包括主机基本网络信息,用于系统启动 /etc/sysconfig/network-script/ 此目录下是系统启动最初始化网络的信息 /etc/sy ...

  2. freemarker 展示数据列表并传值给后台

    select id="initiatorId" name="initiatorId">                  <#if initiato ...

  3. 关于工作与生活——HP大中华区总裁孙振耀撰文谈退休并畅谈人生

    转自:http://blog.csdn.net/adaptiver/article/details/7494121 我有个有趣的观察,外企公司多的是25-35岁的白领, 40岁以上的员工很少,二三十岁 ...

  4. linux下网卡bonding配置

    linux下网卡bonding配置   章节 bonding技术 centos7配置bonding centos6配置bonding 一.bonding技术 bonding(绑定)是一种linux系统 ...

  5. 写shader注意的一些报错

    1.Shader warning in 'Custom/1': Both vertex and fragment programs must be present in a CGPROGRAM. Ex ...

  6. 在linux下解压缩 tar.gz文件

    解压:tar -xzvf 文件名 压缩 tar czf xx.tar.gz xxxx文件名

  7. 【BZOJ2790】[Poi2012]Distance 筛素数+调和级数

    [BZOJ2790][Poi2012]Distance Description 对于两个正整数a.b,这样定义函数d(a,b):每次操作可以选择一个质数p,将a变成a*p或a/p, 如果选择变成a/p ...

  8. ACM暑假集训第三周小结

    这一周学的图论,学了这么些 两种存图的方法:邻接矩阵( map[n][n] ) , 邻接表( headlis[n] , vector<int> G[n] )存图的方法,各有各的好,我的理解 ...

  9. Windows存储管理之磁盘结构详解

    Windows磁盘结构: Windows的主流磁盘结构分为MBR和GPT两种.MBR是早期Windows的唯一选择,但是随着物理磁盘的容量不断增大.GPT结构成为目前的主流,最大支持超过2TB的容量, ...

  10. 跨域与ie浏览器的相关问题

    文章出处url:https://segmentfault.com/a/1190000002647143 产生跨域问题的原因 跨域问题是浏览器同源策略限制,当前域名的js只能读取同域下的窗口属性. 跨域 ...