spring註解 修改更詳細的

2021-08-26 07:32:08 字數 3977 閱讀 8304

@service用於業務層

@controller用於控制層

@respository用於資料訪問

@componment泛指元件

@resource按名稱 @autowired按型別 也可標註在setter() 可以省去get()set()

@transactional 進行事務處理

1、value元素

元素通過字串來指定屬性或構造器引數的值。

com.mysql.jdbc.driver

jdbc:mysql://localhost:3306/mydb

root

2、idref元素

idref元素用來將容器內其它bean的id傳給或元素,同時提供錯誤難功能。

等同於:

thetargetbean

使用idref標記允許容器在部署時驗證所被引用的bean是否存在。此外,如果被引用的bean在同一xml檔案內,且bean名字就是bean id,那麼可以使用local屬性。

此屬性允許xml解析器在解析xml檔案時來對引用的bean進行驗證。

3、ref元素

形式一:

這是最常見的形式是通過使用ref標記指定bean屬性的目標bean,通過該標籤可以引用同一容器或父容器內的任何bean(無論是否在同一xml檔案中)。

xml『bean』元素的值即可以是指定的bean的id值也可以是其name值。

形式二:

使用ref的local屬性指定目標bean,它可以利用xml解析器來難所引用的bean是否存在同一檔案中。local屬性值必須是目標bean的id屬性值。

形式三:

通過使用ref的parent屬性來引用當前視窗的父容器中的bean。parent屬性值即可以是目標bean的id值,也可以是name屬性值。

4、內部 bean:

所 謂內部bean(inner bean)是指在乙個bean的或中使用< bean/>元素定義的bean.內部bean不需要有id或name屬性,即使有也會被視窗忽略.

內部bean總是匿名的且它們總是prototype模式的.同時將內部bean注入到包含該內部bean之外的bean是不可能的.

5、集合合併:

從spring2.0開始,spring ioc容器將支援集合的合併。父子集合元素合併後的值就是子集合中的最終結果,而且子集合中的元素值將覆蓋父集合中的對應的值。

[email protected]

[email protected]

[email protected]

[email protected]

合併後內容:

[email protected]

[email protected]

[email protected]

list集合有排序功能,父bean的列表內容將排在子bean列表內容的前面;

merge屬性必須在繼承的子bean中定義。

6、nulls

用於處理null值。spring會把屬性的空引數當作空字串處理。

等同於excaplebean.seteamil("");

而null值則可以使用元素來表示:

7、簡寫:

針對常見的value值或bean的引用,spring提供了簡化格式用於替代和元素。

、、元素都支援value屬性,它可以用來替代內嵌的元素。

hello *****

hello *****

hello *****

和支援類似的簡寫屬性ref,它可以替找整個內嵌的元素。

*****

*****

切記:儘管存在等同於元素的簡寫形式,但並沒有的簡寫形式。

map中的entry元素的簡寫形式為key/key-ref和value/value-ref屬性。

*****

8、組合屬性名稱

當設定bean的組合屬性時,除了最後一下屬性外,只要其他屬性值不為null,組合或巢狀屬性名是完全合法的。

9、depends-on屬性:

depends-on屬性可以用於當前bean初始化之前顯式的強制乙個或多個bean被初始化。

若需要表達對多個bean的依賴,可民認在中將指定的多個bean名字用分隔符進行分隔,分隔符可以是逗號、空格及分號等。

10、延遲初始化bean--lazy-init 屬性:

在容器層次中通過在元素上使用『default-lazy-init』屬性來控制延遲初始化也是可能的。

11、autowire《自動裝配》 屬性:

模式 說明

no 不使用自動裝配,必須通過ref元素指定依賴,這是預設設定。

byname 根據屬性名自動裝配。spring將檢查容器並根據名字查詢與屬性完全一致的bean,並將其與屬性自動裝配。

bytype 如果容器中存在乙個與指定屬性型別相同的bean,那麼將與該屬性自動裝配。如果存在多個,則丟擲異常。

constructor 與bytype的方式類似,不同之處在於它應用於構造器引數。如果在容器中未找到與構造器引數型別一致的bean,那麼將丟擲異常。

autodetect 通過bean類的自省機制(introspection)來決定是使用constructor還是bytype方式進行自動裝配。如果發現預設的構造器,那麼將使用bytype方式。

--通過設定元素的autowire-candidate="false",可以針對單個bean設定其是否為被自動裝配物件。

12、dependency-check 《依賴檢查》 屬性:

此屬性用於檢查bean定義中實際屬性值的設定。

模式 說明

none 沒有依賴檢查,如果bean的屬性沒有值的話可以不用設定。

****** 對於原始型別及集合(除協作者外的一切東西)執行依賴檢查。

object 僅對協作者執行依賴檢查員。

all 對協作者,原始型別及集合執行依賴檢查。

3.2.2. 例項化容器

spring ioc容器的例項化非常簡單,如下面的例子:

resource resource = new filesystemresource("beans.xml");

beanfactory factory = new xmlbeanfactory(resource);

... 或...

classpathresource resource = new classpathresource("beans.xml");

beanfactory factory = new xmlbeanfactory(resource);

... 或...

beanfactory factory = (beanfactory) context;

table 3.1. bean定義

名稱鏈結

class

section 3.2.3.2, 「例項化bean」

name

section 3.2.3.1, 「命名bean」

scope

section 3.4, 「bean的作用域」

constructor arguments

section 3.3.1, 「注入依賴」

properties

section 3.3.1, 「注入依賴」

autowiring mode

section 3.3.6, 「自動裝配(autowire)協作者」

dependency checking mode

section 3.3.7, 「依賴檢查」

lazy-initialization mode

section 3.3.5, 「延遲初始化bean」

initialization method

section 3.5.1, 「lifecycle介面」

destruction method

section 3.5.1, 「lifecycle介面」

Spring 註解 Qualifier 詳細解析

spring 註解 qualifier 詳細解析 今天帶你了解一下 spring 框架中的 qualifier 註解,它解決了哪些問題,以及如何使用它。我們還將了解它與 primary 註解的不同之處。使用 autowired 註解是 spring 依賴注入的絕好方法。但是有些場景下僅僅靠這個註解不...

Spring 註解 Qualifier 詳細解析

使用 autowired註解是spring依賴注入的絕好方法。但是有些場景下僅僅靠這個註解不足以讓spring知道到底要注入哪個bean。預設情況下,autowired按型別裝配spring bean。如果容器中有多個相同型別的bean,則框架將丟擲nouniquebeandefinitionexc...

spring 基於註解的spring配置

spring是乙個基於ioc和aop的結構j2ee系統的框架 ioc 反轉控制 是spring的基礎,inversion of control 簡單說就是建立物件由以前的程式設計師自己new 構造方法來呼叫,變成了交由spring建立物件 di 依賴注入 dependency inject.簡單地說...