bean的作用域

1.singleton,prototype, web环境下:request,session,gloab session

2.通过scope="" 来进行配置

3.对于singleton  spring容器只会创建一个共享实例,prototype则会创建不同的实例

bean的生命周期(bean自身的方法,bean级生命周期接口方法,容器级生命周期接口方法)

分为BeanFactory的生命周期和ApplicationContext的生命周期

1、对于BeanFactory

1、当通过getBean调用某一个bean的时候,首先看容器是否注册(不是bean实现接口,属于容器级生命周期方法)了InstantiationAwareBeanPostProcessor接口,如果注册了,将会调用postProcessBeforeInstantiation()方法。

2、然后实例化bean

3、调用InstantiationAwareBeanPostProcessor接口的postProcessAfterInstantiation()方法

4、设置属性,调用setter()

5、调用BeanNameAware的setBeanName()方法

6、调用BeanFactoryAware中的setBeanFactory()方法

7、调用InstantiationAwareBeanPostProcessor接口的postProcessBeforeInitialization()方法

8、 如果容器注册了BeanPostProcessor接口,调用该接口的postProcessBeforeInitialization()方法

9、调用InitializingBean接口的afterPropertiesSet()方法

10、调用init-method属性配置的方法

11、调用InstantiationAwareBeanPostProcessor接口的postProcessAfterInitialization()方法

12、调用BeanPostProcessor接口的postProcessAfterInitialization()方法

13、如果bean是单例的则把bean实例存入缓冲池由Spring容器继续关系bean的生命周期,否则交由该bean的调用则管理

14、调用DisposableBean接口的方法

15、通过destory-method属性配置的方法

要往ioc容器手动添加BeanPostProcessor的实现类  (ConfigurableBeanFactory)bf.addBeanPostProcessor(new MyBeanPostProcessor());

ApplicationContext中bean的生命周期和BeanFactoty的基本相同,在BeanFactoryAware接口后增加了一个 ApplicationContextAware接口的setApplicationContext()方法。

Spring bean的作用域和生命周期的更多相关文章

  1. Spring bean的作用域以及生命周期

    一.request与session的区别 request简介 request范围较小一些,只是一个请求. request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请 ...

  2. Spring中Bean的作用域、生命周期

                                   Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...

  3. Spring之Bean的作用域与生命周期

    在前面博客中提到容器启动获得BeanDefinition对象中有一个scope 属性.该属性控制着bean对象的作用域.本章节介绍Bean的作用域及生命周期,了解bean是怎么来的又怎么没的. 一.B ...

  4. 详解Spring中Bean的作用域与生命周期

    摘要:在利用Spring进行IOC配置时,关于bean的配置和使用一直都是比较重要的一部分,同时如何合理的使用和创建bean对象,也是小伙伴们在学习和使用Spring时需要注意的部分,所以这一篇文章我 ...

  5. Spring中bean的作用域与生命周期

    在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean.简单地讲,bean 就是由 IOC 容器初始化.装配及管理的对象,除此之外,bean 就与 ...

  6. Spring框架系列(三)--Bean的作用域和生命周期

    Bean的作用域 Spring应用中,对象实例都是在Container中,负责创建.装配.配置和管理生命周期(new到finalize()) Spring Container分为两种: 1.BeanF ...

  7. Spring中Bean的作用域和生命周期

    作用域的种类 Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域.Spring3 为 Bean 定义了五种作用域,具体如下. 1)singleton 单例模式,使用 sing ...

  8. bean的作用域和生命周期

    一.Bean作用域 二.生命周期 其中,这个类实现各种接口重写各种方法,会按bean的声明周期按序执行: 其中,自定义的初始化和自定义销毁的方法不是实现接口重写,而是成员方法,并且在装配bean即在x ...

  9. [05] Bean的作用域和生命周期

    1.Bean的作用域和初始化时间 之前我们稍微提到过,Spring中管理的Bean,默认都是单例模式,这意味着你多次获取某个对象,得到的都是相同的对象.单例作用域的显性写法是scope属性,如下,这和 ...

随机推荐

  1. 如何将ASP.NET MVC所有参数均自动设置为默认

    今天看到CSDN上有个问题觉得有点意思:"可不可以ASP.NET MVC所有参数均自动设置为默认" public class HomeController : Controller ...

  2. VMware中装Win2012并配置Hyper-v

    VMware中装配Win2012再配置Hyper-v,解决虚拟机监控程序已经在运行中的方法 找到虚拟机存放的位置,用记事本打开Windows Server 2012.vmx,在最后添加两行并保存: h ...

  3. Nginx 遇到的问题

    1.样式没有出来 原因:在Nginx配置中没设置好地址 解决办法:重新设置,如下 #静态资源缓存设置 location ~ \.(jpg|png|jpeg|bmp|gif|swf|css)$ { ex ...

  4. 关键字extern

    extern 可以置于  变量  或  函数  前,  以表明变量 或 函数 的定义在别的文件中,  下面代码用到的这些变量  或 函数是外来的,  不是本文件定义的, 提示链接器遇到此变量和函数时在 ...

  5. rabbitMQ+php

    RabbitMQ与PHP(一) 项目中使用RabbitMQ作为队列处理用户消息通知,消息由前端PHP代码产生,处理消息使用Python,这就导致代码一致性问题,调整消息定义时需要PHP和Python都 ...

  6. Spring-Batch CSV文件读取时的注意点

    按照Spring Batch 之 Sample(CSV文件操作)(四) 的方式配置好csvItemReader, 发现读入的数据很是奇怪,通过修改配置文件发现, commit-interval=&qu ...

  7. begin-end语句块在mysql中的使用问题

    在最近在通过navicate连接mysql数据库时,进行查询操作: delimiter $$BEGIN SET @a=1; if (@a > 0) THEN SELECT COUNT(*) fr ...

  8. 照片元数据信息以及在照片中写入gps信息

    /// 照片元数据编码 在下面的文章里,可以看到图片所有的元数据定义信息 https://msdn.microsoft.com/zh-cn/library/system.drawing.imaging ...

  9. 100 Door Puzzle

    问题重述: There are 100 doors in a long hallway. They are all closed. The first time you walk by each do ...

  10. VFP不同句柄 同一事务处理 统一提交或回滚

    SQLSetprop(m.lnAccHandle,[Transactions],2)SQLSetprop(m.lnSetHandle,[Transactions],2) SQLSetprop(m.ln ...