日期:2014-05-20 浏览次数:20935 次
Bean的依赖设置与集合对象的处理
?
Bean的依赖设置
?1)、type2IOC
? 最常用的通过setter方法来设置bean之间的依赖关系
?2)、type3IOC
? 通过构造函数来设置bean之间的依赖关系
?
?Autoware:自动绑定,通过设定bean的这个属性来在bean定义文件中找相应的bean来注入到bean中,他的值可以为 byName,byType,constructor,autodetect
?
?Bean对集合对象的处理
? 对于那些数组、java.util.List、java.util.Set、java.util.Map等集合对象,可以通过spring的IOC容器来自动创建维护并生成集合。常见写法如下:
例如:
? 代码类如下:
?
?
public class SomeBean {
private String[] someArray;
private List someList;
private Some[] someObjArray;
private Map someMap;
public String[] getSomeArray() {
return someArray;
}
public void setSomeArray(String[] someArray) {
this.someArray = someArray;
}
public List getSomeList() {
return someList;
}
public void setSomeList(List someList) {
this.someList = someList;
}
public Some[] getSomeObjArray() {
return someObjArray;
}
public void setSomeObjArray(Some[] someObjArray) {
this.someObjArray = someObjArray;
}
public Map getSomeMap() {
return someMap;
}
public void setSomeMap(Map someMap) {
this.someMap = someMap;
}
}
?
配置文件如下:
?
? 以上只是说明这些集合类别的bean的声明。相当于给我们的这些bean的属性值赋予初始值了。大家可以通过代码调用,来查看是否真的被赋值了,下边是调用代码: ? <bean id="someBean" class="com.itcast.collect.SomeBean">
<property name="someArray">
<list>
<value>aaa</value>
<value>bbb</value>
</list>
</property>
<property name="someList">
<list>
<ref bean="some1"/>
<ref bean="some2"/>
</list>
</property>
<property name="someObjArray">
<list>
<ref bean="some1"/>
</list>
</property>
<property name="someMap">
<map>
<entry key="aaaKey">
<value>aaaValue</value>
</entry>
<entry key="bbbKey">
<value>bbbValue</value>
</entry>
</map>
</property>
</bean>
//将集合类Bean的属性值一一打印出来
public class SpringBeanListMain {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("list.xml");
SomeBean s= (SomeBean) ctx.getBean("someBean");
for(String a:s.getSomeArray()){
System.out.println(a);
}
System.out.println("------------");
for(Some a:s.getObjArray()){
System.out.println(a);
}
System.out.println("------------");
for(Object a:s.getSomeList()){
System.out.println(a);
}
System.out.println("------------");
Set<java.util.Map.Entry<String, String>> it = s.getSomeMap().entrySet();
for(java.util.Map.Entry<String, String> a: it){
System.out.println(a.getKey());
}
System.out.println(s.getSomeMap().get("aaa"));
}
}
?