1、public void setMapValue(Map mapValue) this.mapValue = mapValue;Spring配置文件: !- intValue123 -value123/propertylistValuelistlist1list2setValuesetset1set2arrayValuearray1array2entry key=k1v1k2v2/map/bean2、对象属性的注入什么是属性编辑器,作用? * 自定义属性编辑器,spring配置文件中的字符串转换成相应的对象进行注入 spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器如何定义属
2、性编辑器? * 继承PropertyEditorSupport类,覆写setAsText()方法 * 将属性编辑器注册到spring中在上面Bean1中加入Date引用类型的属性及相应的方法private Date dateValue;public Date getDateValue() return dateValue;public void setDateValue(Date dateValue) this.dateValue = dateValue;写相应的java.util.Date属性编辑器类import java.beans.PropertyEditorSupport;import
3、 java.text.ParseException;import java.text.SimpleDateFormat;/* * author Administrator*/public class UtilDatePropertyEditor extends PropertyEditorSupport private String format=yyyy-MM-dd;Overridepublic void setAsText(String text) throws IllegalArgumentException System.out.println(UtilDatePropertyEdit
4、or.saveAsText() - text= + text); SimpleDateFormat sdf = new SimpleDateFormat(format); try Date d = sdf.parse(text); this.setValue(d); catch (ParseException e) e.printStackTrace(); public void setFormat(String format) this.format = format;在配置文件中加入dateValue2008-08-15customEditorConfigurerorg.springfra
5、mework.beans.factory.config.CustomEditorConfigurercustomEditorsjava.util.Datebean class=com.spring.UtilDatePropertyEditorformat/entry3、公共属性的注入* 通过标签定义公共的属性,指定abstract=true* 具有相同属性的类在PROJECT name=spring default=. basedir=- 定义编译和运行该项目时所需的库文件 -PATH id=classpath- 该路径下存放spring.jar和其他第三方类库 -FILESET dir=.l
6、ibINCLUDE name=*.jar /FILESET- 同时还需要引用已经编译过的class文件-PATHELEMENT path=/PATH- 编译全部的java文件-TARGET description=Compile all source code name=compile- 指定编译后的class文件的存放位置 -JAVAC debug= destdir= deprecation=false optimize= failonerror=- 指定需要编译的源文件的存放位置 -SRC path=- 指定编译这些java文件需要的类库位置-CLASSPATH refid=classpa
7、th/JAVAC/TARGET- 运行特定的主程序 -run the main classrun depends=- 指定运行的主程序:lee.BeanTest。-JAVA failonerror= fork=yes classname=lee.BeanTest- 指定运行这些java文件需要的类库位置-/JAVA/PROJECT 如果需要改写Axe的实现类。或者说,提供另一个实现类给Person实例使用。Person接口、Chinese类都无须改变。只需提供另一个Axe的实现,然后对配置文件进行简单的修改即可。Axe的另一个实现如下:/Axe的另一个实现类 SteelAxepublic cl
8、ass SteelAxe implements Axepublic SteelAxe()钢斧砍柴真快然后,修改原来的Spring配置文件,在其中增加如下一行:- 定义一个steelAxe bean-BEAN class=lee.SteelAxe id=steelAxe /该行重新定义了一个Axe的实现:SteelAxe。然后修改chinese bean的配置,将原来传入stoneAxe的地方改为传入steelAxe。也就是将改成”steelAxe”/此时再次执行程序,将得到如下结果:钢斧砍柴真快Person与Axe之间没有任何代码耦合关系,bean与bean之间的依赖关系由Spring管理。采用setter方法为目标bean注入属性的方式,称为设值注入。业务对象的更换变得相当简单,对象与对象之间的依赖关系从代码里分离出来,通过配置文件动态管理。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1