1. 程式人生 > >Spring中註解@Scope詳解

Spring中註解@Scope詳解

Scope是spring中的一個註解,可以作為類註解,也可以作為方法註解,它有五個作用域,分別是singleton、prototype、request、session、global session,spring中的bean預設是使用singleton,即單例模式;下面就五種作用域做詳細介紹;
1、@Scope(“singleton”)
spring中的bean預設使用方式,即單例模式,全域性有且僅有一個例項;
2、@Scope(“prototype”)
每次獲取bean時都會產生一個新的例項,注意是“獲取”,而不是“使用”;
舉個例子,在A類中注入B類的例項,在A類中多個地方使用例項B都是使用的同一個;
如果在C類中注入B的例項,那麼在A類中和C類中使用的就是兩個不同的B的例項;
3、@Scope(“request”)
request表示該針對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP request內有效,配置例項:
request、session、global session使用的時候首先要在初始化web的web.xml中做如下配置:
如果你使用的是Servlet 2.4及以上的web容器,那麼你僅需要在web應用的XML宣告檔案web.xml中增加下述ContextListener即可:

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

4、@Scope(“session”)
session作用域表示該針對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP session內有效
5、@Scope(“global session”)