Spring3 0中Bean注入其他Bean的方法

2021-10-24 13:32:01 字數 2413 閱讀 2176

就是將想要注入的bean當成引數注入到另乙個bean中

當spring容器中只有乙個要注入型別的bean時,spring會自動將該bean注入

jdbc-config.properties

jdbc.driverclassname=com.mysql.jdbc.driver
自己開發的bean2,內部需要注入其他類

public class bean2 

public void setstring(string string)

}

實際注入操作

@configuration

@propertysource("classpath:jdbc-config.properties")

@value("$") string driver;

//獲取配置檔案中的值

@bean

public string str1()

@bean

public bean2 bean2(string str1)

}

測試方法

public class demo1  

}

顯示結果:

首先spring容器會先根據型別進行匹配,如果存在多個,則進行名稱的匹配

@configuration

@propertysource("classpath:jdbc-config.properties")

@value("$") string driver;

//獲取配置檔案中的值

@bean

public string str1()

@bean

public string str2()

@bean

public bean2 bean2(string str2)

}

顯示結果是:

2. 在注入前,方法引數進行人為指定@qualifier(「str1」):

@configuration

@propertysource("classpath:jdbc-config.properties")

@value("$") string driver;

//獲取配置檔案中的值

@bean

public string str1()

@bean

public string str2()

@bean

public bean2 bean2(@qualifier("str1") string str2)

}

顯示結果:

在bean上進行宣告 @primary表示型別衝突時使用該bean

@configuration

@propertysource("classpath:jdbc-config.properties")

@value("$") string driver;

//獲取配置檔案中的值

@bean

@primary

public string str1()

@bean

public string str2()

@bean

public bean2 bean2( string str2)

}

顯示結果:

因為想要注入的bean一定是已經注入到spring 容器中的,並且是通過類的方法進行注入的,所以當另乙個bean需要依賴該bean時,可以直接呼叫對應的方法返回bean進行set設定進行注入

@configuration

@propertysource("classpath:jdbc-config.properties")

@value("$") string driver;

//獲取配置檔案中的值

@bean

public string str1()

@bean

public string str2()

@bean

public bean2 bean2( )

}

限制是:只能在當前配置類中使用,當跨類時不能使用

並且使用@configuration註解,當前配置類會動態生成**物件,當設定當前bean為prototype時,依賴的bean即使是返回return new object() ,依賴bean始終是同乙個object

Spring3 0學習之bean的配置方式

class com.zj.car id boss class com.zj.boss ref可以通過以下三個屬性引用其他bean bean 通過該屬性引用同乙個容器或者父容器的bean。local 通過該屬性引用同乙個配置檔案中的bean,並且可以發現和糾正錯誤的配置。parent 通過該屬性引用父...

Spring3 0中 Import註解的功能

import註解的功能 使用 import增強aop功能詳見 spring3.0中基於註解形式的aop 多配置類的引入詳見 spring3.0中多配置類引入設定 匯入bean 是普通類,demoaspect.class是增強類 configuration import enableaspectjau...

Spring3 0實現REST例項

關於rest是什麼東西,在這裡我就不再多說,大家可以去看看介紹,直接切入主題 這是乙個rest風格的訪問,spring從3.0開始將全面支援rest。不得不感嘆spring的強悍。專案結構 第一步永遠是配置,使用框架永遠都是先有配置,在web.xml中的配置 第三步 具體實現類 index.jsp頁...