JAVA全系列 教程
3762个小节阅读:7092.4k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
当我们想要定义一个List类型Bean时,必须借助ListFactoryBean
xxxxxxxxxx
<bean id="myList" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="sourceList">
<list>
<value>1</value>
<value>2</value>
<value>3</value>
</list>
</property>
</bean>
如果不想要去记忆ListFactoryBean,可以使用util命名空间。
注意:对于初学者,很容易在util:list里面又套一个<list>
标签,如果写上了,相当于List<List<String>>
xxxxxxxxxx
<util:list id="myUtilList" list-class="java.util.LinkedList" value-type="java.lang.String">
<value>a</value>
<value>b</value>
<value>c</value>
</util:list>
相同道理如果想要把定义成List的Bean注入给某个Bean的属性,依然使用ref引用id即可。
修改Demo类,添加list属性,生成getter、setter方法,和toString()方法
xxxxxxxxxx
public class Demo {
private String name;
private List<?> list;
public List<?> getList() {
return list;
}
public void setList(List<?> list) {
this.list = list;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Demo{" +
"name='" + name + '\'' +
", list=" + list +
'}';
}
}
修改配置文件中Demo的bean
xxxxxxxxxx
<bean id="demo" class="com.bjsxt.pojo.Demo">
<property name="name" ref="myUtilName"></property>
<property name="list" ref="myUtilList"></property>
</bean>
运行结果,可以发现正常输出list属性值。
正常定义一个Map类型的Bean需要借助MapFactoryBean
xxxxxxxxxx
<bean id="myMap" class="org.springframework.beans.factory.config.MapFactoryBean">
<property name="sourceMap">
<map>
<entry key="a" value="a1"></entry>
<entry key="b" value="b1"></entry>
</map>
</property>
</bean>
使用util命名空间简化后的写法。可以定义map的细节
xxxxxxxxxx
<util:map id="myUtilMap" key-type="java.lang.String" value-type="java.lang.String" map-class="java.util.TreeMap">
<entry key="c" value="c1"></entry>
<entry key="d" value="d1"></entry>
</util:map>
正常定义Set类型Bean需要借助SetFactoryBean
xxxxxxxxxx
<bean id="mySet" class="org.springframework.beans.factory.config.SetFactoryBean">
<property name="sourceSet">
<set>
<value>a</value>
<value>b</value>
</set>
</property>
</bean>
使用util:set简化后的语法
xxxxxxxxxx
<util:set id="myUtilSet" value-type="java.lang.String" set-class="java.util.TreeSet">
<value>c</value>
<value>c</value>
</util:set>