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