1、单例模式(singleton)
在整个IOC容器中,用singleton定义的Bean只有一个实例。
2、原型模式(prototype)
每次通过容器的getBean()获取Bean,都将产生一个新的Bean。
3、request
每次HTTP请求,使用request定义的Bean都产生一个新实例。只有在web应用使用Spring时,该作用域才生效。
4、session
对于每次HTTP session,使用session定义的Bean都将产生一个新实例。只有在web应用使用Spring时,该作用域才生效。
5、global session
每个全局的HTTP session对应一个Bean实例。只有在web应用使用Spring时,该作用域才生效。
总结:对于不使用SpringMVC来说,要使用request和session作用于的话,相应要引入监听器和过滤器。
request:<listener>
<listener-class>
org.framework.web.context.request.RequestContextListener
</listener-class>
</listener>
session: <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>对于使用SpringMVC的应用,即使用SpringDispatcherServelet或者DispatcherPortlet来拦截用户请求,就不需要配置,因为SpringDispatcherServelet和DispatcherPortlet已经处理了所有和请求有关的状态处理。