您的位置:首页 > 编程语言 > Java开发

Spring属性注入(普通属性注入,自定义属性编辑器)

2009-09-06 04:00 351 查看
Spring主要是用
DI
依赖注入方式,注入好了后统一由
IOC
容器进行管理,
Spring
有 普通属性注入,自定义属性编辑器

普通属性注入



第一种方式:

<property name=" 属性名

" value="


"/>

第二种方式 :

<property name="属性名

">

<value>值

</value>

</property>

=>
字符串


<property name="strValue" value="wangking" />

=>
int类型



<property name="intValue" value="123"/>

=>
List类型



<property name = "listValue">

<list>

<value> list1 </value>

<value> list2 </value>

</list>

</ property >

=>
Set 类型



<property name = "setValue">

<set>

<value> set1 </value>

<value> set2 </value>

</set>

</property>

=>
数组类型


<property name="arrayValue">

<list>

<value> array1 </value>

<value> array1 </value>

</list>

</property>

=>
Map 类型



<property name="mapvalue">

<map>

<entry key="key1" value="map1" />

<entry key="key2" value="map2" />

</map>

</property>

在客户端取值时可以通过Spring的BeanFactory获得执行的对象,

BeanFactory factory =new ClassPathXmlApplicationContext("applicationContext-k1.xml ");

Xml 文件有多个的情况下
,
可以将配置文件名放在一个数组,将数组传入

ClassPathXmlApplicationContext构造函数的参数里

String[] xmlArgs = {"applicationContext-k1.xml","applicationContext-k2.xml"};

BeanFactory factory = new ClassPathXmlApplicationContext(xmlArgs);

也可以用
*
通配符访问以某某前缀的所有文件,如

BeanFactory factory =new ClassPathXmlApplicationContext("applicationContext-*.xml ");

访问所有以 applicationContext-
前缀的
xml
文件

自定义属性编辑器



如某一类中有一属性为java.util.Date类型的。这个类型的属性需要用到属性编辑器,那么我

写java.util.Date的属性编辑器类(继承自PropertyEditorSupport,重写setAsText方法):

package com.test;
import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @author wangking E-mail:admin717@gmail.com
* @version 创建时间:2009-9-6 上午04:40:00 类说明
*/
public class DatePropertyEditor extends PropertyEditorSupport {
private String format;
@Override
public void setAsText(String text) throws IllegalArgumentException {

SimpleDateFormat sdf = new SimpleDateFormat(format); // 格式化得类 构造传入定义的格式
try {
Date date = sdf.parse(text);
this.setValue(date);
}catch (ParseException e) {
e.printStackTrace();
}

}
public void setFormat(String format) {
this.format = format;
}
}


在配置文件中加入:

<property name="date" value="2009-9-6" />
<!-- 定义属性编辑器 -->
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">
<property name="customEditors">
<map>
<entry key="java.util.Date">
<bean class="com.test.DatePropertyEditor">
<property name="format" value="yyyy-MM-dd"/>
</bean>
</entry>
</map>
</property>
</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: