Spring bean物件相關認識

2021-10-07 06:30:40 字數 1161 閱讀 2913

bean的xml配置

bean的建立

"hello"

class

="beans.helloservice"

/>

在spring容器中管理的bean物件,可以在宣告時通過scope屬性或相關註解指定其作用域,最常用的是singleton,prototype。

singleton

這個作用域標識的物件具備全域性唯一性,建立時只會建立乙個物件

,不會重複建立新的物件。系統預設情況下時singleton標識

prototype

這個作用域標示的物件每次獲取都會建立新的物件

思考:1.spring為什麼要為bean設定作用域(更好的管理記憶體)

2.假如沒有spring如何保證乙個類的例項具備全域性唯一性?(單例模式)

3.單利模式如何實現,有哪些實現方式,這些實現方式有什麼不同?

bean的生命週期

在spring框架應用中,所有的bean物件都有生命週期,bean物件的生命週期是指物件的建立,初始化,服務,銷毀這個過程。可以通過init-methos,destroy-metho的屬性指定生命週期方法。

在spring應用由spring建立的物件是否是由spring銷毀還得取決於作用域的配置。例如:

1.singleton作用域的物件可以在容器關閉時被銷毀

2.prototype作用域的物件可以由容器建立物件,初始化物件,但不能銷毀物件。

bean的延遲載入

在spring中,容器預設初始化時會構建所有由spring管理的所有的bean物件。但假如這些物件長時間不使用還占用記憶體就會造成一定的資源浪費。為解決這個問題,spring設計了延遲載入機制。通過這種機制來提高系統資源的使用。

spring中的延遲載入需要使用bean元素中的lazy-init屬性或beans中的default-lazy-init=「true」屬性進行設定,二者的應用的不同點:

1.lazy-init:應用在bean標籤中用於指定這個bean的載入策略

2.default-lazy-init:應用在beans標籤中用於指定所有的bean的載入策略

spring Bean相關配置及物件的生命週期

id 使用了約束中的唯一約束,裡面不能出現特殊字元 name 沒有使用唯一約束,可以出現特殊字元 一般不使用 init method bean被初始化時執行的方法 即載入配置檔案時建立管理的所有的物件並呼叫所有的init方法 以前的版本是在呼叫getbean 時,物件才會被建立 destroy me...

淺認類和物件

1.類和物件的初步認識 物件導向的概念 1.物件導向 opp 是思考問題的一種思考方式,是一種思想。比如 概念與例項。理論與實踐。名和實等等。2.類就是一類物件的統稱。物件就是這一類具體化的乙個例項。3.物件導向的好處 將複雜的事情變簡單了,只要面對乙個物件就行。總結 物件導向就是用 類 來描述客觀...

非註解方式獲取spring bean物件以及配置值

spring bean物件可以通過 autowired 或者 resource等註解方式獲取 spring配置值可以通過 value註解獲取。通過註解方式獲取很方便,但是有一定侷限 本文主要介紹通過非註解的方法獲取bean物件以及配置方法。獲取bean 物件主要是獲取spring 容器的上下文 pa...