List,Set,Map,Properties的Spring注入实例

本文通过具体示例展示了如何在Spring框架中进行集合类型的注入,包括List、Set、Map及Properties等不同类型的注入方式,并提供了完整的Java代码实现及Spring配置文件。
定义接口:
package Bean.collections;

public interface Person ... {
publicvoiduseAxe();
}
package Bean.collections;
public interface Axe {
public String chop();
}


定义实现类:
package Bean.collections;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

import Bean.collections.Person;

public class Chinese implements Person ... {
privateListschools=newArrayList();
privateMapscores=newHashMap();
privatePropertieshealth=newProperties();
privateSetaxes=newHashSet();
publicSetgetAxes()...{
returnaxes;
}

publicvoidsetAxes(Setaxes)...{
this.axes=axes;
}

publicPropertiesgetHealth()...{
returnhealth;
}

publicvoidsetHealth(Propertieshealth)...{
this.health=health;
}

publicListgetSchools()...{
returnschools;
}

publicvoidsetSchools(Listschools)...{
this.schools=schools;
}

publicMapgetScores()...{
returnscores;
}

publicvoidsetScores(Mapscores)...{
this.scores=scores;
}

publicvoiduseAxe()...{
System.out.println(schools);
System.out.println(scores);
System.out.println(axes);
System.out.println(health);
}


}

package Bean.collections;

public class SteelAxe implements Axe ... {

publicStringchop()...{
return"这是一把铁斧子";

}


}



package Bean.collections;

public class WoodAxe implements Axe ... {

publicStringchop()...{
return"这是一把木头斧子";

}


}


spring配置文件:

<? xmlversion="1.0"encoding="UTF-8" ?>
<! DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd" >

< beans >

< bean id ="chinese" class ="Bean.collections.Chinese" >
< property name ="schools" >
< list >
< value > 小学 </ value >
< value > 中学 </ value >
< value > 大学 </ value >
</ list >
</ property >
< property name ="health" >
< props >
< prop key ="血压" > 正常 </ prop >
< prop key ="身高" > 178 </ prop >
</ props >
</ property >
< property name ="scores" >
< map >
< entry key ="数学" >
< value > 88 </ value >
</ entry >
< entry key ="语文" >
< value > 99 </ value >
</ entry >
</ map >
</ property >
< property name ="axes" >
< set >
< value > 字符串斧子 </ value >
<!-- 用嵌套bean定义属性 -->
< bean class ="Bean.collections.WoodAxe" />
<!-- 引用bean作为属性 -->
< ref local ="steelaxe" />
</ set >
</ property >
</ bean >
< bean id ="steelaxe" class ="Bean.collections.SteelAxe" ></ bean >
</ beans >


测试代码:

public static void main(String[]args) throws Exception ... {

Stringpath
=newTest().getClass().getResource("/").getPath();
Stringrealpath
=path.substring(1,path.length());
ApplicationContextcontext
=newFileSystemXmlApplicationContext(realpath+"/collection.xml");


Personperson1
=(Person)context.getBean("chinese");
person1.useAxe();


}


运行结果“

[小学, 中学, 大学]
{数学=88, 语文=99}
[字符串斧子, Bean.collections.WoodAxe@1506dc4, Bean.collections.SteelAxe@1126b07]
{血压=正常, 身高=178}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值