Spring中Bean的自動裝配

2021-07-26 12:22:48 字數 1129 閱讀 1391

1. no:不做任何操作

class= "com.test.a">

name="b"

ref="b">property>

id="b"

class="com.test.b">

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

修改配置檔案:

id="a"

class="com.test.a"

autowire="byname">

bean>

id="b"

class="com.test.b">

bean>

class a

class b

byname自動遵循一項約定:為屬性自動裝配id與屬性的名字相同的bean。通過設定autowire屬性為byname,spring將特殊對待a的所有屬性,為這些屬性尋找與名字相同的spring bean。 spring會發現 b屬性可以通過setter注入來進行自動裝配。

3. bytype:如果容器中存在乙個與指定屬性型別相同的bean,那麼將與該屬性自動裝配;如果存在多個該型別的bean,那麼丟擲異常,並指出不能使用bytype方式進行自動裝配;如果沒有找到相匹配的bean,則什麼事都不發生

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

bean的自動裝配:在beans標籤配置屬性

default-autowire="no/byname/bytype/constructor"
作用為:省去了在spring的xml中配置property標籤和constructor-arg標籤,只需要配置bean標籤即可

ps:

byname和bytype為設值注入,constructor為構造注入;

byname要求bean標籤的id屬性需要和成員變數的名稱一致,

bytype和constructor則跟id無關

Spring 中的Bean 自動掃瞄

將spring 配置成如下這樣.就表示 spring 將掃瞄所有的com.yourhz下面的bean.那麼bean應當如何寫才能被他掃瞄到呢。我們看如下乙個例子。在類名上面加如下一句,則表示這是乙個受制於spring 的 bean controller 如果寫成這樣的,估計表示bean的控制代碼名稱...

spring中Bean的自動裝配

新增乙個person類 package autowire public class person public void setname string name public address getaddress public void setaddress address address publ...

spring中bean的自動裝配

為了解決bean每次都配置的那麼麻煩,spring提供了乙個自動裝配的功能,個人感覺功能有一些雞肋 假設我們有乙個user類,然後裡面有兩個屬性分別是名字和位址 user package com.zhouning.spring.beans public class user public user ...