Spring中的@scope註解

默認是單例模式,即scope="singleton"。另外scope還有prototype、request、session、global session做用域。scope="prototype"多例java

@scope默認是單例模式(singleton)web

若是須要設置的話@scope("prototype")spring

1.singleton單例模式,session

  全局有且僅有一個實例app

2.prototype原型模式,spa

  每次獲取Bean的時候會有一個新的實例prototype

3.requestxml

  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.sessionblog

  session做用域表示該針對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP session內有效生命週期

5.global session

global session做用域相似於標準的HTTP Session做用域,不過它僅僅在基於portlet的web應用中才有意義。Portlet規範定義了全局Session的概念,它被全部構成某個 portlet web應用的各類不一樣的portlet所共享。在global session做用域中定義的bean被限定於全局portlet Session的生命週期範圍內。若是你在web中使用global session做用域來標識bean,那麼web會自動當成session類型來使用。

可是通常常見的話通常會使用上面1和2兩種

相關文章
相關標籤/搜索