spring多種方式的依賴注入

第一種:通過set方法方式 

第二種:通過構造器即構造方法注入

 注意使用構造方法時要跟類中構造方法的屬性順序一致。也可以指定如下圖所示:通過index(索引),name(屬性名),type(屬性類型)或者這些都可以一起加上

 第三種:p命名空間。注意p命名與p命名 賦值之間 要有空格!

 

注意:如果存在下圖中的情況,springIoc容器中採用構造方法注入時是默認給字符串類型的屬性賦值,此時需要指定type或name

指定type的時候 

此時是給年齡賦值,所以下圖中老師的name爲null。因爲是給age做賦值處理了,name並沒有賦值 

集合類型。set方法注入

集合類型構造方法注入

 特殊值得注入,首先要清楚value與<value>的區別

 

如下圖 

 

給屬性賦值爲""(空)或null時 

下圖是賦null時 

這是賦""時 

注意:在springIoc容器中定義的bean的類必須存在無參的構造方法。

第四種,自動裝配,只適用於ref類型。按如下圖配置,即會在springIoc容器中去尋找bean的id的值與下圖中bean中配置的類的屬性名相同的bean。下圖中autowire=“byName”中的byName本質上就是根據bean的id的值查找springIoc容器。將byName換爲byType也可以,byType是根據類型去找,會去當前springIoc容器中查找bean類型跟下圖中bean中類中ref類型的屬性的類型一致的bean並且要求有且只有一個符合。

下圖中的道理跟使用autowired=“byType”是同樣的道理, 下圖中是去當前springIoc容器中查找與該類中構造方法中參數類型一致的bean。

下圖中,紅色框中的配置是可以實現給當前spring容器中的所有的bean設置通過byName自動裝配的。 

如果子標籤中有自己的自動裝配配置,則可以覆蓋全局的自動裝配對該bean的影響

 

使用註解定義bean。首先 在容器中配置掃描器

 

即掃描註解所在類所在的包 ,查找該包中所有添加該註解的類,將符合的添加進當前SpringIoc容器中。

 

針對上圖中的類。在該類中添加上訴註解,就相當於在spring Ioc容器中添加下圖中的bean標籤中的信息一樣。下圖中兩個紅框其實作用一致。

dao層一般是用專門的註解,一般是@Repository。service層採用@Service,控制器層採用@Controller或者@RestController

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章