spring中@Scope作用域的注解

@Scope简单点说就是用来指定bean的作用域

官方解释是:scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象

默认是单例模式,即singleton:Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配,则只会返回bean的同一实例,一个容器对应一个bean。

prototype   表示多例:每一次请求(将其注入到另一个bean中,或者以程序的方式调用容器的 getBean()方法)都会产生一个新的bean实例,相当与一个new的操作

request   表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效

session   表示作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效

global session  作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义。Portlet规范定义了全局Session的概念,它被所有构成某个 portlet web应用的各种不同的portlet所共享。在global session作用域中定义的bean被限定于全局portlet Session的生命周期范围内。如果你在web中使用global session作用域来标识bean,那么web会自动当成session类型来使用

在request、session、global session使用的时候首先要在初始化web的web.xml中做如下配置

如果使用的是Servlet 2.4及以上的web容器,那么仅需要在web.xml中增加下述ContextListener即可

<web-app>
   ...
  <listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
  </listener>
   ...
</web-app>

如果是Servlet2.4以前的web容器,需要使用一个javax.servlet.Filter的实现

<web-app>
 ..
 <filter>
    <filter-name>requestContextFilter</filter-name>
    <filter-class>org.springframework.web.filter.RequestContextFilter</filter-class>
 </filter>
 <filter-mapping>
    <filter-name>requestContextFilter</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>
   ...
</web-app>
时间: 2024-11-05 12:35:09

spring中@Scope作用域的注解的相关文章

spring中scope作用域(转)

摘自 http://www.cnblogs.com/qq78292959/p/3716827.html 今天研究了一下scope的作用域.默认是单例模式,即scope="singleton".另外scope还有prototype.request.session.global session作用域.scope="prototype"多例.再配置bean的作用域时,它的头文件形式如下: 如何使用spring的作用域: <bean id="role&quo

Spring中@Resource、@controller注解的含义

@Resource 注解被用来激活一个命名资源(named resource)的依赖注入,在JavaEE应用程序中,该注解被典型地转换为绑定于JNDI context中的一个对象. Spring确实支持使用@Resource通过JNDI lookup来解析对象,默认地,拥有与@Resource注解所提供名字相匹配的"bean name(bean名字)"的Spring管理对象会被注入. 在下面的例子中,Spring会向加了注解的setter方法传递bean名为"dataSour

Spring 中的 18 个注解,你会几个?

阅读本文大概需要 4 分钟. 作者:Java的小本家 @Controller 标识一个该类是 Spring MVC controller 处理器,用来创建处理 http 请求的对象. @RestController Spring4 之后加入的注解,原来在 @Controller 中返回 json 需要 @ResponseBody 来配合,如果直接用 @RestController 替代 @Controller 就不需要再配置 @ResponseBody ,默认返回 json 格式. @Servi

spring中scope(作用越)理解

今天总结了一下spring中作用域scope的用法.在spring中作用域通过配置文件形式的用法如下. <bean id="role" class="spring.chapter2.maryGame.Role" scope="singleton"/> 一. 在spring 中常用的作用域有单例模式(singleton),和多例模式(prototype) 1.当一个bean的 作用域设置为singleton, 那么Spring IOC容

spring之scope作用域

spring中,bean的作用域有五种类型:默认是单例模式,         singleton         prototype         request         session         global session 配置作用域时,使用 scope属性,xml文件配置如下, 查看spring官方文档,解释如下: 1.singleton     如果一个bean配置为singelton,表示该bean在spring IOC容器中只有一个实例,也就是单例 配置如下:下面两种

Spring中的属性注入注解

@Inject使用 JSR330规范实现的 默认按照类型注入 如果需要按照名称注入,@Inject需要和@Name一起使用 @Resource JSR250规范实现的,需要导入不同的包 @Resource是按照名称匹配的 @Autowired Spring中定义的注解 默认按照类型注入 如果需要按照名称注入,需要配合@Qualifier注解一起使用 包含一个require属性 原文地址:https://www.cnblogs.com/watertreestar/p/11780306.html

Spring中的@Service(&quot;dataDictionaryService&quot;)注解

1.接口 public interface DataDictionaryService { /** * 获取兑换率 * @param coinType 原币种 * @param billCoin 折币种 * @param date 取离该时间最近的兑换率 * @return */ public BigDecimal getExch(String coinType, String billCoin, Date date); } 如图,有两个实现类. 2.实现类 @Service("dataDict

Spring中bean的五个作用域简介(转载)

Spring上个版本的IoC容器支持两个不同的bean作用域(单例与原型).Spring 2.0改进了这一点,不仅提供了一些依赖于Spring部署环境(比如说,在web环境中的request和session作用域bean)的额外的作用域,而且提供了所谓的'钩子'('hooks')(因为找不到更好的表达)使Spring用户可以创造自己的作用域. 应该注意的是,即使单例与原型作用域beans的基本(内在)实现发生了变化,上述变化对最终用户来说是透明的...现有的配置不需要改变或放弃. 如何使用spr

spring中的scope详解

0.思维导图 1. scope概论 spring中scope是一个非常关键的概念,简单说就是对象在spring容器(IOC容器)中的生命周期,也可以理解为对象在spring容器中的创建方式. 2. scope历史及分类 目前,scope的取值有5种取值: 在Spring 2.0之前,有singleton和prototype两种: 在Spring 2.0之后,为支持web应用的ApplicationContext,增强另外三种:request,session和global session类型,它们