Spring配置bean的时候,属性scope一般有5种值。singleton(默认)、prototype、request、session、global session。除此之外,scope也可以自己定义值。
1. singleton
首先这个是scope的默认值,在spring容器中只会有一个共享(数据、属性.....)的实例,会在spring容器启动时初始化,所有调用都使用同一个bean实例,这个实例在spring中是唯一的,且这个实例会存储到单例缓存中,一般无状态bean使用。
2.prototype
每次的bean请求都会创建一个新实例,即new一个实例,一般用于有状态bean。实例的生命周期由代码控制,脱离了spring容器的管理。且在调用时才会实例化对象,前台action请求一般数据、成员变量不可以共享,必须是一个线程请求对应一个实例。
3.request(仅在web的spring ApplicationContext中作用)
每个http请求会对应同一个bean实例,不同请求会返回各自的bean实例。
需要在web.xml中配置
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
4.session(仅在web的spring ApplicationContext中作用)
每个http session会对应同一个bean实例,不同session会返回各自的bean实例。也需要在web.xml配置。
5.global session(仅在web的spring ApplicationContext中作用)
portlet web应用中才起作用。
相关推荐
spring bean 的作用域(scope), SPringle bean的作用域
详解Spring中bean的scope以后使用,如何使用spring的作用域:
创建SpringBean配置工具类(安全)如: <bean id=... scope="prototype"></bean>
我的博客的spring之bean的Scope 的 示例代码。 包含了一个web工程(包括lib包)。但是里面也有可以执行的main函数。 环境是eclipse,spring 是 4.1.5
Spring IOC Bean标签属性介绍 0.Bean标签属性介绍 1.0 新建一个Maven工程 1.1 pom.xml 1.2 实体类JavaBean 1.2.1 User类 1.3 当Scope="singleton"时 1.4 当 Scope="singleton" 且 lazy-init="true" 时 1.5 当scope=...
Spring In Action-3.2@Scope单例、多例Bean,Spring In Action-3.2@Scope单例、多例Bean,Spring In Action-3.2@Scope单例、多例Bean,Spring In Action-3.2@Scope单例、多例Bean
Spring Bean 的作用域之间有什么区别:Bean的作用域: 可以通过scope 属性来指定bean的作用域 ①singleton: 默认值。当IOC容器
<bean scope=“singleton"></bean> 取值: singleton:设定创建出的对象保存在spring容器中,是一个单例的对象(bean默认是单例) 单例的对象是在加载spring容器时就创建了,且此后你在同一个bean获取资源时,用...
Bean元素有一个scope属性,用于定义Bean的作用域,该属性有如下五个值: 1>singleton: 单例模式,在整个spring IOC容器中,单例模式作用域的Bean都将只生成一个实例。一般Spring容器默认Bean的作用域为singleton ...
在Spring配置文件中,可以使用<bean>元素的scope属性,将Bean的作用域定义成singleton。 singleton作用域 singleton是Spring容器默认的作用域,当Bean的作用域为singleton时,Spring容器就只会存在一个共享的Bean...
bean的创建顺序 在 spring 的 ioc 容器, 默认是按照xml文件里配置的从上到下的顺序创建 bean 对象 ...如果,我们希望 ioc 容器配置的某个 bean 对象,是以多个实例形式创建的则可以通过配置scope="prototype" 来指定。
Spring系列第12篇:lazy-init:bean延迟初始化Spring系列第13篇:使用继承简化bean配置(abstract & parent)Spring系列第14篇:lookup-method和replaced-method比较陌生,怎么玩的?Spring系列第15篇:代理详解(Java...
NULL 博文链接:https://diaochenlong2.iteye.com/blog/1831285
NULL 博文链接:https://listen-raining.iteye.com/blog/2128694
首先定义一个简单的类 import lombok.Getter; import lombok.Setter; @Getter @Setter public class HelloMessageGenerator { private String message;... return getClass().getSimpleName() + "@" + Integer....
六、 Bean的作用范围scope 12 七、 集合注入 12 八、 自动装配autowire 13 (一) byName 13 (二) byType 14 (三) 注意 14 九、 生命周期 15 (一) lazy-init/default-lazy-init 15 (二) init-method destroy-method ...
第一天内容:Spring框架简介(EJB、JMX、Spring核心功能、Spring模块详解、Spring重要概念(容器)、Spring容器初始化的整个流程、Spring后处理器),IOC详解,Spring环境搭建,Spring创建Bean的三种方式,scope属性...
2.2 Spring配置文件 7 2.3 Spring API 8 3 Spring基本功能详解 8 3.1 SpringIOC 8 3.2别名Alias 11 别名拓展: 11 3.3 Spring容器内部对象的创建 12 Spring容器内部对象创建拓展: 12 3.3.1使用类构造器实例化(默认...
这个属于与Spring整合的问题,Spring容器在初始化对象的时候会根据bean的scope配置来考虑是重新建立一个对象,还是继续使用原来的对象,拿struts2的action的bean来说,如果scope这个参数没有配置,默认就是单例,即...
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> <!-- apache.dbcp连接池的配置 --> <bean id="dataSource" class="org.apache.commons.dbcp....