一.前言
<bean id="user1" scope="singleton" init-method="myInit" destroy-method="myDestory" class="com.ahd.domain.User">
1.id作用设置对象名,scope为作用域,class是相关bean的完整路径.
2.使用原型bean会对性能产生影响,尽量不要设置成prototype,除非有必要,尽量使用scope=”singleton”
3.init-method和destroy-method为定制方法,前者为定制初始化bean的方法,后者为定制销毁bean及其他需要关闭对象的方法
4.定制方法也可以通过注解的方式配置
5.不推荐使用接口,使用接口后bean和springAPI绑定了
6.如果要把bean的属性设置成空,可以设置成<null/>
二.bean的作用域
三.如何给集合对象注入值(map,list,set,数组)?
1.list和数组类似:
<property name="namelist">
<list>
<value>北京</value>
<value>上海</value>
<value>天津</value>
</list>
</property>
<!--value元素改成ref即可引用其他bean对象 -->
<property name="userlist">
<list>
<ref bean="user1"/>
<ref bean="user2"/>
</list>
</property>
java测试遍历代码:
//遍历list<String>
for(String s:cu.getNamelist()){
System.out.println(s);
}
//遍历list<User>
System.out.println();
for(User user:cu.getUserlist()){
System.out.println(user.getId()+user.getName());
System.out.println(user);
}
2.配置set,set无序不重复,配置代码beans:
<property name="userset">
<set>
<ref bean="user1"/>
<ref bean="user2"/>
</set>
</property>
java测试遍历代码:
//遍历set
for(User user:cu.getUserset()){
System.out.println("set"+user.getId()+user.getName());
}
3.配置map,
<property name="usermaps">
<map>
<entry key="111" value-ref="user1"/>
<entry key="222" value-ref="user2"/>
</map>
</property>
java测试遍历代码:
//遍历map,方式一
Map<String,User> map=cu.getUsermaps();
for(String key:map.keySet()){
System.out.println(key+map.get(key)+"user:"+map.get(key).getId());
}
//遍历map,方式二(使用迭代器)
Iterator<Map.Entry<String,User>> it=map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String, User> entry=it.next();
System.out.println("key:"+entry.getKey()+" value:"+entry.getValue());
} //遍历map,方式三,适合数据量特别大的时候
for(Map.Entry<String, User> entry:map.entrySet()){
System.out.println(entry.getKey()+entry.getValue());
} //遍历map,方式四,只能遍历value,不能遍历key
for(User user:map.values()){
System.out.println(user);
}
4.给属性集合配值:
<property name="userpro">
<props>
<prop key="user">password</prop>
<prop key="user1">password1</prop>
</props>
</property>
测试代码
Properties prop=cu.getUserpro();
Enumeration<Object> keys = prop.keys();
while(keys.hasMoreElements()){
String key=keys.nextElement().toString();
System.out.println(key+" "+prop.getProperty(key));
}
四.内部bean,
内部bean不能被其他对象所引用,只能供父bean使用
<bean id="user1" class="com.ahd.domain.User">
<property name="name">
<bean id="user3" class="com.ahd.domain.Use">
<property name="id" value="2" />
<property name="name" value="李四" />
</bean>
</property>
</bean>
五.继承
<bean id="check3" parent="validateUser" class="com.ahd.serviceImpl.CheckUser3">
<property name="phone">
<value>13548965896</value>
</property>
</bean>
CheckUser3 类.
package com.ahd.serviceImpl; import com.ahd.service.ValidateUser; public class CheckUser3 extends CheckUser1{
private String phone;
public CheckUser3(){ }
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
} }