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

Spring中的bean

  组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。

  简单地讲,bean就是由IoC容器初始化、装配及管理的对象

  Spring中的bean默认都是单例的(scope="singleton"默认值)

  我们可以设置为多例(scope="prototype")

bean的作用域

  当scope="singleton"时

    Singleton是单例类型,就是在创建起容器时就同时自动创建了一个bean的对象

    不管你是否使用,他都存在了,每次获取到的对象都是同一个对象

  当scope="prototype"时

    Prototype是原型类型,它在我们创建容器的时候并没有实例化

    而是当我们获取bean的时候才会去创建一个对象,而且我们每次获取到的对象都不是同一个对象

bean的生命周期

  

  1、当scope=”singleton”,即默认情况下,会在启动容器时实例化。

  2、当scope=”prototype”时,容器会延迟初始化bean,Spring读取xml文件的时候,并不会立刻创建对象,

  而是在第一次请求该bean时才初始化Spring容器一旦把这个对象交给你之后,就不再管理这个对象了。

原文地址:https://www.cnblogs.com/whtt/p/11752891.html

时间: 2024-10-09 16:53:59

Spring中bean的作用域与生命周期的相关文章

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

在前面博客中提到容器启动获得BeanDefinition对象中有一个scope 属性.该属性控制着bean对象的作用域.本章节介绍Bean的作用域及生命周期,了解bean是怎么来的又怎么没的. 一.Bean的作用域在Bean容器启动会读取bean的xml配置文件,然后将xml中每个bean元素分别转换成BeanDefinition对象.在BeanDefinition对象中有scope 属性,就是它控制着bean的作用域.Spring框架支持5种作用域,有三种作用域是当开发者使用基于web的App

spring中bean的作用域属性singleton与prototype的区别

1.singleton 当一个bean的作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例.换言之,当把一个bean定义设置为singleton作用域时,Spring IOC容器只会创建该bean定义的唯一实例.这个单一实例会被存储到单例缓存(singleton cache)中,并且所有针对该bean的后续请求和引用都将返回被缓存的对象实例,这里要注意的是singl

spring中bean的作用域

Spring中bean的作用域可以在xml配置文件(一般叫bean.xml或ApplicationContext.xml)中通过scope属性进行指定. 在Spring中,bean对象可以有多种作用域 singletion 默认的,每个IOC容器只创建一个Bean实例 prototype每次请求创建一个Bean实例 request每次http请求创建一个实例 session每次会话创建一个实例 globalsession每个全局Http请求创建一个实例

C/C++——C++变量的作用域与生命周期,C语言中变量的作用域和生命周期

全局变量 作用域:全局作用域(全局变量只需在一个源文件中定义,就可以作用于所有的源文件.) 生命周期:程序运行期一直存在 引用方法:其他文件中要使用必须用extern 关键字声明要引用的全局变量. 内存分布:全局数据区 注意:如果在两个文件中都定义了相同名字的全局变量,连接出错:变量重定义 全局静态变量 作用域:文件作用域(只在被定义的文件中可见.) 生命周期:程序运行期一直存在 内存分布:全局数据区 定义方法:static关键字,const 关键字 注意:只要文件不互相包含,在两个不同的文件中

Spring bean的作用域和生命周期

bean的作用域 1.singleton,prototype, web环境下:request,session,gloab session 2.通过scope="" 来进行配置 3.对于singleton  spring容器只会创建一个共享实例,prototype则会创建不同的实例 bean的生命周期(bean自身的方法,bean级生命周期接口方法,容器级生命周期接口方法) 分为BeanFactory的生命周期和ApplicationContext的生命周期 1.对于BeanFactor

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

一.request与session的区别 request简介 request范围较小一些,只是一个请求. request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请求完毕之后,request里边的内容也将被释放点 . 简单说就是你在页面上的一个操作,request.getParameter()就是从上一个页面中的url.form中获取参数. 但如果一个request涉及多个类,后面还要取参数,可以用request.setAttribute()和request.

spring Bean的作用域、生命周期和后处理器

1. Bean的几种作用域 singleton 单例, 在整个spring IoC 容器只存在唯一对象 prototype 多例, 每次进行getBean 创建新的对象 request ,创建Bean, 放入request范围 request.setAttribute session ,创建Bean ,放入session范围 session.setAttribute globalSession 全局会话, 分布式多个系统, 共享同一个会话 单例Bean,在ApplicationContext对象

Spring中bean的作用域与bean的初始化与销毁

bean的作用域 通过在配置bean时,指定bean元素的scope来指定该bean的作用域 scope的默认值是singleton,即单例模式,在一个ApplicationContext中,每次调用getBean()方法,获取的都是同一个bean. 如果要使每次获取的bean 都不相同可以指定scope的值为prototype,那么每次调用getBean()都会获得一个新的bean Scope还可以去request指在一次Http请求中为单例 session在整个session范围中是单例的

Spring中Bean的作用域属性

当一个bean的作用域设置为singleton, 那么spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例.换言之,当把一个bean定义设置为singleton作用域时,Spring IOC容器只会创建该bean定义的唯一实例.这个单一实例会被存储到单例缓存(singleton cache)中,并且所有针对该bean的后续请求和引用都将返回被缓存的对象实例,这里要注意的是singleton作用域和GOF设