这篇文章来谈谈《Spring Framework 开发参考手册》的3.3.2小节中的集合对象注入。
在项目开发中,还是经常会用到集合对象注入的,不过感觉没有多少需要介绍的,这次就只给出实例了。
·
先建立一个包:javamxj.spring.basic.collections ,然后把以下4个文件放在这个包下。
Hello.java
|
package
javamxj
.
spring
.
basic
.
collections
;
public class Hello { public String toString() { return "这是一个bean"; } } |
CollectionInjection.java |
package
javamxj
.
spring
.
basic
.
collections
;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class CollectionInjection {
private Map someMap;
private Properties someProps;
private Set someSet;
private List someList;
public void setSomeProps(Properties someProps) {
this.someProps = someProps;
}
public void setSomeList(List someList) {
this.someList = someList;
}
public void setSomeMap(Map someMap) {
this.someMap = someMap;
}
public void setSomeSet(Set someSet) {
this.someSet = someSet;
}
public void displayInfo() {
System.out.println("Map contents:");
for (Object key : someMap.keySet()) {
System.out.println("Key: " + key + " - Value: " + someMap.get(key));
}
System.out.println("/nProperties contents:");
for (Object key : someProps.keySet()) {
System.out.println("Key: " + key + " - Value: "
+ someProps.get(key));
}
System.out.println("/nSet contents:");
for (Object i : someSet) {
System.out.println("Value: " + i);
}
System.out.println("/nList contents:");
for (Object i : someList) {
System.out.println("Value: " + i);
}
}
}
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
public class CollectionInjection {
private Map someMap;
private Properties someProps;
private Set someSet;
private List someList;
public void setSomeProps(Properties someProps) {
this.someProps = someProps;
}
public void setSomeList(List someList) {
this.someList = someList;
}
public void setSomeMap(Map someMap) {
this.someMap = someMap;
}
public void setSomeSet(Set someSet) {
this.someSet = someSet;
}
public void displayInfo() {
System.out.println("Map contents:");
for (Object key : someMap.keySet()) {
System.out.println("Key: " + key + " - Value: " + someMap.get(key));
}
System.out.println("/nProperties contents:");
for (Object key : someProps.keySet()) {
System.out.println("Key: " + key + " - Value: "
+ someProps.get(key));
}
System.out.println("/nSet contents:");
for (Object i : someSet) {
System.out.println("Value: " + i);
}
System.out.println("/nList contents:");
for (Object i : someList) {
System.out.println("Value: " + i);
}
}
}
beans.xml |
<?
xml
version
=
"
1.0
"
encoding
=
"
GBK
"
?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="hello" class="javamxj.spring.basic.collections.Hello"/>
<bean id="injectCollection"
class="javamxj.spring.basic.collections.CollectionInjection">
<property name="someMap">
<map>
<entry key="someValue" value="Hello javamxj!"/>
<entry key="someBean">
<ref local="hello"/>
</entry>
</map>
</property>
<property name="someProps">
<props>
<prop key="姓">张</prop>
<prop key="名">小小</prop>
</props>
</property>
<property name="someSet">
<set>
<value>Hello World!</value>
<ref local="hello"/>
</set>
</property>
<property name="someList">
<list>
<value>Hello World!</value>
<ref local="hello"/>
</list>
</property>
</bean>
</beans>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="hello" class="javamxj.spring.basic.collections.Hello"/>
<bean id="injectCollection"
class="javamxj.spring.basic.collections.CollectionInjection">
<property name="someMap">
<map>
<entry key="someValue" value="Hello javamxj!"/>
<entry key="someBean">
<ref local="hello"/>
</entry>
</map>
</property>
<property name="someProps">
<props>
<prop key="姓">张</prop>
<prop key="名">小小</prop>
</props>
</property>
<property name="someSet">
<set>
<value>Hello World!</value>
<ref local="hello"/>
</set>
</property>
<property name="someList">
<list>
<value>Hello World!</value>
<ref local="hello"/>
</list>
</property>
</bean>
</beans>
Main.java
|
package
javamxj
.
spring
.
basic
.
collections
;
import org . springframework . beans . factory . BeanFactory ; import org . springframework . beans . factory . xml . XmlBeanFactory ; import org . springframework . core . io . ClassPathResource ; public class Main { public static void main( String[] args) { BeanFactory bf= new XmlBeanFactory( new ClassPathResource( "javamxj/spring/basic/collections/beans.xml")); CollectionInjection c = (CollectionInjection)bf.getBean( "injectCollection"); c.displayInfo(); } } |
·运行Main.java,输出结果如下:
Map contents:
Key: someValue - Value: Hello javamxj!
Key: someBean - Value: 这是一个bean
Key: someValue - Value: Hello javamxj!
Key: someBean - Value: 这是一个bean
Properties contents:
Key: 姓 - Value: 张
Key: 名 - Value: 小小
Key: 姓 - Value: 张
Key: 名 - Value: 小小
Set contents:
Value: Hello World!
Value: 这是一个bean
Value: Hello World!
Value: 这是一个bean
List contents:
Value: Hello World!
Value: 这是一个bean
Value: Hello World!
Value: 这是一个bean
这篇文章源代码下载(不包含库文件):http://free.ys168.com/?javamxj Spring目录下面的SpringBasic.zip。
注意: 需要使用JDK 5。