版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sayyy/article/details/82918442
@scope注解使用方式:
@scope("prototype")
@scope注解可取值:
- singleton
- prototype
- request
- session
- global session
@scope注解默认是singleton(单例模式),即scope=“singleton”。
各个作用域的解释:
scope | 说明 |
---|---|
singleton单例模式 | 全局有且仅有一个实例 |
prototype原型模式 | 每次获取Bean的时候会有一个新的实例 |
request | 每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效 |
session | 每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效 |
global session | global session作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义。Portlet规范定义了全局Session的概念,它被所有构成某个 portlet web应用的各种不同的portlet所共享。在global session作用域中定义的bean被限定于全局portlet Session的生命周期范围内。如果你在web中使用global session作用域来标识bean,那么web会自动当成session类型来使用。 |
特殊说明:
当scope为request、session、global session时,要在初始化web的web.xml中做如下配置:
<web-app>
...
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
...
</web-app>