SpringBean有哪些作用域?
當透過Spring容器建立一個Bean例項時,不僅可以完成Bean例項的例項化,還可以為Bean指定特定的作用域。Spring支援如下5種作用域!一起看下本期常見問題之SpringBean作用域!
singleton:單例模式,在整個Spring IoC容器中,使用singleton定義的Bean將只有一個例項
prototype:原型模式,每次透過容器的getBean方法獲取prototype定義的Bean時,都將產生一個新的Bean例項
request:對於每次HTTP請求,使用request定義的Bean都將產生一個新例項,即每次HTTP請求將會產生不同的Bean例項。只有在Web應用中使用Spring時,該作用域才有效
session:對於每次HTTP Session,使用session定義的Bean豆漿產生一個新例項。同樣只有在Web應用中使用Spring時,該作用域才有效
globalsession:每個全域性的HTTP Session,使用session定義的Bean都將產生一個新例項。典型情況下,僅在使用portlet context的時候有效。同樣只有在Web應用中使用Spring時,該作用域才有效
其中比較常用的是singleton和prototype兩種作用域。對於singleton作用域的Bean,每次請求該Bean都將獲得相同的例項。容器負責跟蹤Bean例項的狀態,負責維護Bean例項的生命週期行為;如果一個Bean被設定成prototype作用域,程式每次請求該id的Bean,Spring都會新建一個Bean例項,然後返回給程式。在這種情況下,Spring容器僅僅使用new 關鍵字建立Bean例項,一旦建立成功,容器不在跟蹤例項,也不會維護Bean例項的狀態。
如果不指定Bean的作用域,Spring預設使用singleton作用域。Java在建立Java例項時,需要進行記憶體申請;銷燬例項時,需要完成垃圾回收,這些工作都會導致系統開銷的增加。因此,prototype作用域Bean的建立、銷燬代價比較大。而singleton作用域的Bean例項一旦建立成功,可以重複使用。因此,除非必要,否則儘量避免將Bean被設定成prototype作用域。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2215333/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從自定義一個作用域開始來了解SpringBean的作用域SpringBean
- Spring中Bean的作用域有哪些?SpringBean
- JavaScript中[]作用有哪些JavaScript
- 【面試普通人VS高手】Spring 中Bean的作用域有哪些?面試SpringBean
- javascript沒有塊級作用域JavaScript
- 美顏sdk人臉識別技術在其它領域有哪些作用?
- python裝飾器有哪些作用Python
- 物聯網路卡的作用有哪些
- 什麼是HTTPDNS?HTTPDNS有哪些作用?httpdDNS
- JavaScript 作用域 與 作用域鏈JavaScript
- js 作用域和作用域鏈JS
- js的作用域、作用域鏈JS
- 人工智慧技術在軟體安全漏洞檢測領域有哪些作用人工智慧
- js的作用域和作用域鏈JS
- javascript之作用域與作用域鏈JavaScript
- js的作用域與作用域鏈JS
- 隧道代理IP伺服器有哪些作用伺服器
- 大資料有哪些作用?_光點科技大資料
- 作用域
- Python的容器有哪些?分別有什麼作用?Python
- 前端web:主流跨域方式有哪些?前端Web跨域
- 詞法作用域和動態作用域
- 區塊鏈作用在哪些領域得以實現?區塊鏈
- CRM系統對企業的作用有哪些?
- 美顏sdk在影片場景有哪些作用?
- Linux yum命令有什麼作用?有哪些常用引數?Linux
- 雲資料庫MySQL有什麼作用?有哪些優點?資料庫MySql
- 原型、原型鏈、作用域、作用域鏈、閉包原型
- 深入理解JavaScript作用域和作用域鏈JavaScript
- JS語法作用域與詞法作用域JS
- javaScript 作用域JavaScript
- JavaScript作用域JavaScript
- js作用域JS
- 函式(三)作用域之變數作用域、函式巢狀中區域性函式作用域、預設值引數作用域函式變數巢狀
- javascript作用域和作用域鏈簡單介紹JavaScript
- Linux具有哪些作用?Linux有什麼特性?Linux
- CRM系統中的工作流有哪些作用?
- 什麼是專案管理軟體,有哪些作用?專案管理