Spring 的作用域:
singleton : 在每一个Sping的容器中只包含有一个对象。
prototype : 在每次需要的时候就会创建一个对象。
request :针对每次请求创建一个新的对象,只针对web应用产生效用(这貌似是废话)。
session :针对一次会话有效。
global session :针对全局会话产生效用, 主要用在门户性应用的上下文中。
application :在一个ServeletContext 的生命周期中有效。
对于 request,session,global session 并不是都默认情况下就支持的,
如果你使用的是SpringMVC,那很幸运 SpringFramework已经为你处理里,完全可以支持以上的三个生命周期;
如果你用的Servlet2.5 web 容器,而且没有使用SpringMVC,那么就需要注册org.springframework.web.context.request.RequestContextListener来进行支持,Servlet 3.0+,可以通过WebApplicationInitializer接口进行编码实现。
注册监听 web.xml:
<web-app>
...
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener
</listener-class>
</listener>
...
</web-app>