spring的作用域


spring的作用域

一、概述

  spring有五種作用域分別書singleton、prototype、request、session、application

二、詳解

  singleton 就是單例類型。創建容器時自動創建一個bean的對象,不管是否使用,都存在了,每次獲取到的對象都是同一個對象

  prototype就是一個bean定義對應多個對象實例。prototype是原型類型,在創建容器時並沒有實例化,當獲取bean的時候才回去創建對象。每次獲取到的對象都不是同一個對象。有狀態的bean使用prototype,無狀態的使用singleton。有狀態就是說這個bean實例是保存用戶的信息的,一旦用戶滅忙,bean生命周期也就結束。無狀態是沒有特定的用戶。即使使用它的用戶消亡,依然存在會話池中,依然可以被其他用戶調用。

  request、session、application都是在web環境下使用的,我們一般搭配springMVC使用。因為springmvc的前端控制器包含了相關的狀態。

  如果沒有使用springmvc需要在xml文件里配置一下listener和filter

  request就是請求作用域:就是說每次用到這個bean來處理HTTP請求的時候會創建一個bean實例。請求完成后銷毀這個bean

  session是會話作用域:session是服務器和瀏覽器的一次會話過程,是連續的不是一次請求。session結束后銷毀,session中所有http請求共享同一個請求的bean實例

  application全局作用域:是說bean是ServletContext級別的就是說是整個web項目全局共享的。與單例有點像,但是單例是作用在applicationcontext也就是一個容器當中的,一個項目不僅僅只有一個applicationContext。

 

  Spring有兩個核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。他們都可代表Spring容器,Spring容器是生成Bean實例的工廠,並且管理容器中的Bean。

  

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM