spring的註解IOC配置以及依賴注入

2021-09-19 05:41:24 字數 2302 閱讀 7072

註解如果要生效,需要在配置檔案中宣告使用註解進行配置。並指定掃瞄的包

註解分類

ioc註解(建立物件)*****

component

作用:用於把當前類物件存入spring容器中

屬性:value:用於指定bean的id。當我們不寫時,它的預設值是當前類名,且首字母改小寫

衍生的三個註解,和component的作用一致

controller:一般用在表現層

service:一般用在業務層

repository:一般用在持久層

自動注入

@autowired

自動把容器中已有的值注入到指定位置。

匹配的原則:

首先按照型別進行匹配,如果容器中有且只有乙個與之對應的資料,直接注入。

如果容器中沒有任何與之對應的,缺省會報錯。如果使用required屬性指定為false,可以不注入 @autowired(required = false)

如果容器中有多於乙個資料可以型別匹配,

先按照變數名稱作為容器中資料的key查詢,如果能找到,注入此資料。

如果找不到,直接報錯。

注入list或map集合的情況

如果是list集合,會把容器中所有跟list集合的泛型匹配的資料都放入list中

如果是map集合,要求map的key的型別必須是string。此時會把容器中型別能和map的值的泛型匹配的元素都放入map。

注入的其他註解

@qualifier:

作用:在按照類中注入的基礎之上再按照名稱注入。它在給類成員注入時不能單獨使用。但是在給方法引數注入時可以(稍後我們講)

屬性:value:用於指定注入bean的id。

@resource

等價於autowired和qualifier的組合

屬性名稱為name,不可省略

@value

作用:用於注入基本型別和string型別的資料

屬性:value:用於指定資料的值。它可以使用spring中spel(也就是

spel的寫法:$

scope

作用:用於指定bean的作用範圍,預設是單例的

屬性:value:指定範圍的取值。常用取值:singleton prototype

predestroy

作用:用於指定銷毀方法

postconstruct

作用:用於指定初始化方法

案例:*****

使用半註解半xml的開發方式(開發中經常會使用這種配置方式)

自定義的類的管理可以使用註解完成

如果是第三方jar包中的類,使用xml配置

spring純註解開發配置***

@configuration

用於指定某個類是spring的配置類,在其中可以設定spring的一些引數。相當於是替代了spring的配置檔案。

@componentscan

用於指定spring要掃瞄的包,便於解析註解。

@bean

作用:用於把指定工廠方法的返回值作為bean物件存入spring的ioc容器中

屬性:name:用於指定bean的id。當不寫時,預設值是當前方法的名稱

細節:當我們使用註解配置方法時,如果方法有引數,spring框架會去容器中查詢有沒有可用的bean物件。

查詢的方式和autowired註解的原理是一樣的(可以理解為,只要用bean註解配置了方法,此方法的引數自帶autowired註解)

可以使用qualifier註解直接指定需要注入的bean的id完成注入。

@import

作用:用於匯入其他的配置類。寫在主配置類中的,一般會使用主配置引入多個單獨的配置檔案共同組合成最終的配置。

屬性:value:用於指定其他配置類的位元組碼。

當我們使用import的註解之後,有import註解的類就父配置類,而匯入的都是子配置類

預設junit不會建立spring容器,更不會自動注入需要的物件。

如果能讓junit支援spring,可以幫我們在執行測試**之前建立並維護容器,就可以支援spring的設定了。

junit提供了乙個註解runwith,可以用於替換junit原有的執行類。

spring提供了乙個junit的執行類,這個執行類會幫助我們建立ioc容器。

spring提供了乙個contextconfiguration註解,用於指定建立容器時配置的獲取方式。

屬性:classes:用於指定註解配置時的配置類

locations:用於指定xml配置時的配置檔案路徑

spring基於註解的Ioc配置

賬戶的業務層實現類 曾經xml的配置 scope init method destory method 用於建立物件的 他們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的 component 作用 用於把當前類物件存入spring容器中 屬性 value 用於指定bean的id。當我們不...

Spring基於註解的IOC配置

他們的作用就和在xml配置檔案中編寫乙個標籤實現的功能是一樣的 component 用於把當前類物件存入spring類容器中 屬性 value 用於指定bean的id,當我們不寫它的預設值是當前類名且首字母改小寫 controller 一般用在表現層 service 一般用在業務層 reposito...

註解方式配置Spring實現Ioc

1.首先需要配置spring,支援註解 加上這三句話在beans中 配置xml命名空間 xmlns context spring context 4.1.xsd 提示一下 xsd檔案,是用來約束xml檔案的語法和格式 約束xml檔案,有兩種標準 dtd dtd schema xsd 2.初始化和裝配...