1.spring属性的注入配置
- 1. 属性的注入配置
Bean文件的配置,即为bean的各属性赋值
<bean id="sone" class="edu.yzu.entity.Student" init-method="initialMethod" parent="sbean" >
<!—- init-method指定了该bean类初始化后用来验证属性是否合法,该方法会在属性设置结束后调用 ,
Parent是指本bean中的一些属性如果没有初始化则会以sbean中的相同属性名的对应值来初始化--!>
<property name="id" value="10002" />
<property name="name" value="Rose" />
<property name="sex" value="boy" />
<property name="age" value="23" />
<property name="birthday" value="
<property name="emails">
<list>
<value>123@qq.com</value>
<value>456@sina.com</value>
<value>789@163.com</value>
</list>
</property>
<property name="phones">
//list或者数组类型的属性注入
<list>
<value>13657164847</value>
<value>15901083941</value>
<value>13797502137</value>
</list>
</property>
<property name="scores">
//为map指定 key value属性指定一般类型,key-ref value-ref指定的是bean引用
<map>
<entry key="math" value="97" />
<entry key="chinese" value="96" />
<entry key="englist" value="92" />
</map>
</property>
<property name="classmates">
//set类型的属性注入
<set>
<ref local="sone" />
<!-- 表时此值并非String int 等原始类型,local指明这个值是本配置文件的一个bean -à
<ref local="myself" />
</set>
</property>
</bean>
- 非自动类型转换
对bean属性的注入过程中,如果一些类型不能注入,则可以类型转换,自定义转换该类型的转换器,如上面的birthday属性是日期性的,spring 不能自动注入该类型,则自定义转换器如下:
public class myDateEditor extends PropertyEditorSupport {
@Override
public void setAsText(String text) throws IllegalArgumentException {
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
Date date = format.parse(text);
setValue(date);
} catch (ParseException e) {
e.printStackTrace();
new IllegalAccessException(e.getMessage());
}
}
}
配置文件如下 :只要这样配置后spring 遇到java.util.Date类型后会自动调用上面的转换器,注入bean属性
<bean id="myeditor"
class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.util.Date">
<bean id="dateEditor" class="edu.yzu.editor.myDateEditor" />
</entry>
</map>
</property>
</bean>