網(wǎng)站開發(fā)需要python 嗎全國(guó)疫情最新消息今天實(shí)時(shí)
Bean的依賴注入有兩種方式:
一 . 常規(guī)Bean的依賴注入
很簡(jiǎn)單,不過多贅述了,注意ref: 是構(gòu)造函數(shù)或set方法的參數(shù),一般為對(duì)象, value:?是構(gòu)造函數(shù)或set方法的參數(shù),一般為值.? ?看下圖
? 1.1 下面來演示一下集合數(shù)據(jù)類型的關(guān)于Bean的依賴注入
1.1.1這是List的注入(演示泛型為String和UserDao兩種情況)
在UserServiceImpl.java里的代碼
private List<String> stringList;public void setStringList(List<String> stringList) {this.stringList = stringList;}private List<UserDao> userDaoList;public void setUserDaoList(List<UserDao> userDaoList) {this.userDaoList = userDaoList;}
applicationContext.xml里的配置代碼
<bean id="userService" class="com.itheima.service.impl.UserServiceImpl"><property name="stringList" ><list><value>aaa</value><value>bbb</value><value>ccc</value></list></property><property name="userDaoList"><list><ref bean="userDaoA"></ref><ref bean="userDaoB"></ref><ref bean="userDaoC"></ref></list></property></bean><bean id="userDaoA" class="com.itheima.dao.impl.UserDaoImpl"></bean><bean id="userDaoB" class="com.itheima.dao.impl.UserDaoImpl"></bean><bean id="userDaoC" class="com.itheima.dao.impl.UserDaoImpl"></bean>
1.1.2同理set與此類似,不在演示
1.1.3map也很簡(jiǎn)單,大致與上文類似,下面給出配置文件不太一樣的地方
<property name="map"><map><entry key="d1" value-ref="userDao1"></entry><entry key="d2" value-ref="userDao2"></entry></map></property>
Propertis:鍵值對(duì),鍵與值都是字符串;
1.1.4定義與map有點(diǎn)區(qū)別
private Properties properties;public void setProperties(Properties properties) {this.properties = properties;}
?這是配置文件代碼
<property name="properties"><props><prop key="p1">ppp1</prop><prop key="p2">ppp2</prop></props></property>
二.擴(kuò)展
可用autowire自動(dòng)裝配,一般用ByName,注意set方法名稱與注入的Bean ID一致,否則會(huì)報(bào)錯(cuò)