spring基礎--bean

Spring其實就是一個大型的工廠,而Spring容器中的Bean就是該工廠的產品.對於Spring容器可以生產那些產品,則取決於配置文件中配置。spring

        對於咱們而言,咱們使用Spring框架所作的就是兩件事:開發Bean、配置Bean。安全

bean  session

id框架

name.net

classprototype

init-method:Bean實例化後會馬上調用的方法線程

destory-method:Bean從容器移除和銷燬前,會調用的方法xml

factory-method:運行咱們調用一個指定的靜態方法,從而代替構造方法來建立一個類的實例。對象

scope:Bean的做用域,包括singleton(默認),prototype(每次調用都建立一個實例), request,session, global-session(注意spring中的單例bean不是線程安全的)接口

autowired:自動裝配 byName, byType, constructor, autodetect(首先闡釋使用constructor自動裝配,若是沒有發現與構造器相匹配的Bean時,Spring將嘗試使用byType自動裝配)

Id:肯定該Bean的惟一標識符,容器對Bean管理、訪問、以及該Bean的依賴關係,都經過該屬性完成。Bean的id屬性在Spring容器中是惟一的。    

        Class:指定該Bean的具體實現類。注意這裏不能使接口。一般狀況下,Spring會直接使用new關鍵字建立該Bean的實例,所以,這裏必須提供Bean實現類的類名。

 容器中Bean的做用域  

 Singleton:單例模式。在整個SpringIoC容器中,使用singleton定義的Bean將只有一個實例。

           Prototype:原型模式。每次經過容器的getBean方法獲取prototype定義的Bean時,都將產生一個新的Bean實例。

           request:對於每次HTTP請求,使用request定義的Bean都將產生一個新的實例,即每次HTTP請求都會產生不一樣的Bean實例。固然只有在WEB應用中使用Spring時,該做用域才真正有效。

        session:對於每次HTTPSession,使用session定義的Bean都將產生一個新的實例時,即每次HTTP Session都將產生不一樣的Bean實例。同HTTP同樣,只有在WEB應用纔會有效。

        global session:每一個全局的HTTPSession對應一個Bean實例。僅在portlet Context的時候纔有效。

       

        比較經常使用的singleton和prototype。若是一個Bean實例被設置爲singleton,那麼每次請求該Bean時都會得到相同的實例。容器負責跟蹤Bean實例的狀態,負責維護Bean實例的生命週期行爲。若是一個Bean實例被設置爲prototype,那麼每次請求該di的Bean,Spring都會建立一個新的Bean實例返回給程序,在這種狀況下,Spring容器僅僅使用new關鍵字建立Bean實例,一旦建立成功,容器將不會再跟蹤實例,也不會維護Bean實例的狀態。

        若是咱們不指定Bean的做用域,則Spring會默認使用singleton做用域。

 

bean 的註解:

2、註解分爲兩類:

一、一類是使用Bean,便是把已經在xml文件中配置好的Bean拿來用,完成屬性、方法的組裝;好比@Autowired , @Resource,能夠經過byTYPE(@Autowired)、byNAME(@Resource)的方式獲取Bean;

二、一類是註冊Bean,@Component , @Repository , @ Controller , @Service , @Configration這些註解都是把你要實例化的對象轉化成一個Bean,放在IoC容器中,等你要用的時候,它會和上面的@Autowired , @Resource配合到一塊兒,把對象、屬性、方法完美組裝。

相關文章
相關標籤/搜索