spring應用手冊-IOC(XML配置實現)-(26)-注入set集合
戴著假髮的程式設計師 出品
注入set集合
spring應用手冊(第一部分)
我們可以通過set標籤對類中的set屬性進行注入,無論屬性是簡單型別和引用型別。
案例:
準備賬戶類,擁有屬性account,有參和無參構造方法
/**
* @author 戴著假髮的程式設計師
*
* @description 賬戶
*/
public class Account {
private String account;
public Account(){
}
public Account(String account) {
this.account = account;
}
public void setAccount(String account) {
this.account = account;
}
@Override
public String toString(){
return "account:"+account;
}
}
準備賬戶組類,這個類擁有兩個set集合型別的屬性,一個accName儲存字串型別的賬戶名字,一個儲存Account型別的賬戶物件。 擁有有參和無參構造方法。
/**
* @author 戴著假髮的程式設計師
*
* @description
*/
public class Group {
//賬戶名字集合
private Set<String> accNames;
//賬戶物件集合
private Set<Account> accounts;
public void setAccNames(Set<String> accNames) {
this.accNames = accNames;
}
public void setAccounts(Set<Account> accounts) {
this.accounts = accounts;
}
//無引數構造
public Group(){
}
//有引數構造
public Group(Set<String> accNames, Set<Account> accounts) {
this.accNames = accNames;
this.accounts = accounts;
}
public void showNames(){
for(String name : accNames){
System.out.print(name+"\t");
}
System.out.println();
}
public void showAccount(){
for(Account account : accounts){
System.out.print(accounts);
}
System.out.println();
}
}
我們在配置檔案中給group注入屬性。使用set標籤進行注入:
<?xml version="1.0" encoding="UTF-8"?>
<beans default-autowire="byType" xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 準備三個accountBean -->
<bean id="account1" class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="卡卡西"/>
</bean>
<bean id="account2" class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="佐助"/>
</bean>
<bean id="account3" class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="鳴人"/>
</bean>
<!-- 註冊一個group -->
<bean id="group" class="com.dk.demo2.beans.Group">
<property name="accNames">
<!-- 使用set標籤注入簡單set集合屬性 -->
<set>
<value>路飛</value>
<value>索隆</value>
<value>山治</value>
</set>
</property>
<property name="accounts">
<!-- set標籤注入引用型別屬性 -->
<set>
<ref bean="account1"/>
<ref bean="account2"/>
<ref bean="account3"/>
</set>
</property>
</bean>
</beans>
測試:
@Test
public void testSet(){
ApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
Group bean = ac.getBean(Group.class);
bean.showNames();
bean.showAccount();
}
結果:
當然對應引用型別其實我們也可以在set標籤中利用bean標籤直接例項化物件,例如:
<bean id="group" class="com.boxuewa.dk.demo2.beans.Group">
<property name="accNames">
<!-- 使用set標籤注入簡單set集合屬性 -->
<set>
<value>路飛</value>
<value>索隆</value>
<value>山治</value>
</set>
</property>
<property name="accounts">
<!-- set標籤注入引用型別屬性 -->
<set>
<bean class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="喬峰"/>
</bean>
<bean class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="虛竹"/>
</bean>
<bean class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="段譽"/>
</bean>
</set>
</property>
</bean>
測試結果:
注意:上面的所有注入方式也都適合構造方法的注入。例如:
<!-- 註冊一個group -->
<bean id="group" class="com.dk.demo2.beans.Group">
<constructor-arg name="accNames">
<!-- 使用set標籤注入簡單set集合屬性 -->
<set>
<value>路飛</value>
<value>索隆</value>
<value>山治</value>
</set>
</constructor-arg>
<constructor-arg name="accounts">
<!-- set標籤注入引用型別屬性 -->
<set>
<bean class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="喬峰"/>
</bean>
<bean class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="虛竹"/>
</bean>
<bean class="com.dk.demo2.beans.Account">
<constructor-arg name="account" value="段譽"/>
</bean>
</set>
</constructor-arg>
</bean>
相關文章
- spring應用手冊-IOC(XML配置實現)-(36)-context:component-scan的scope-resolver屬性SpringXMLContext
- spring應用手冊-IOC(XML配置實現)-(35)-context:component-scan的scoped-proxy屬性SpringXMLContext
- Spring IOC XML配置SpringXML
- Spring注入:配置注入(set注入和構造器注入)與註解注入Spring
- Spring學習日記01_IOC_xml的三種注入方式SpringXML
- Spring IOC——依賴注入Spring依賴注入
- Mybatis應用手冊MyBatis
- Spring set注入和構造注入的區別Spring
- Spring配置注入Spring
- spring應用手冊-AOP(註解)-(20)-切面釋出-前置通知Spring
- Laravel 中的依賴注入和 IoC 實現Laravel依賴注入
- 面試:spring ioc實現原理面試Spring
- Spring IOC容器實現機制Spring
- XML實體注入漏洞XML
- Rational ClearQuest 安裝、配置、使用手冊
- Spring實現IOC容器的兩種實現方式Spring
- 4. Spring對IoC的實現Spring
- 《Spring原始碼分析》IOC的實現Spring原始碼
- Spring系列:基於XML的方式構建IOCSpringXML
- Spring基礎使用(一)--------IOC、Bean的XML方式SpringBeanXML
- Spring入門配置(一) - IOCSpring
- 【Spring Boot】yaml配置注入Spring BootYAML
- spring 詳細講解(ioc,依賴注入,aop)Spring依賴注入
- php實現依賴注入(DI)和控制反轉(IOC)PHP依賴注入
- Spring框架系列(7) - Spring IOC實現原理詳解之IOC初始化流程Spring框架
- Spring IOC容器的設計與實現Spring
- Spring IoC容器與應用上下文的設計與實現Spring
- Spring 常用的註解以及對應 XML 配置詳解SpringXML
- Spring AOP基於xml的方式實現SpringXML
- spring原始碼解析之IOC容器(四)——屬性注入Spring原始碼
- spring原始碼解析之IOC容器(三)——依賴注入Spring原始碼依賴注入
- 一文徹底弄懂Spring IOC 依賴注入Spring依賴注入
- Spring系列.依賴注入配置Spring依賴注入
- Spring筆記(9) - IOC實現方式詳解Spring筆記
- 原來 spring.xml 配置的 destroy-method 需要用到向虛擬機器註冊鉤子來實現!SpringXML虛擬機
- 從XML配置角度理解Spring AOPXMLSpring
- Spring方法注入的使用與實現原理Spring
- Spring框架系列(6) - Spring IOC實現原理詳解之IOC體系結構設計Spring框架