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方法):
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;
}
}
在配置文件中加入: