1.Spring依赖库
*SPRING_HOME/dist/spring.jar
*SPRING_HOME/lib/jarkarta-commons/commons-logging.jar
*SPRING_HOME/lib/log4j/log4j-1.2.14.jar
2.拷贝Spring配置文件到src下
3.拷贝log4j配置文件到src下
4.在UserManagerImpl中提供构造函数或setter方法,spring将实例化的UserDao实现注入给我们
5.让spring管理我们的对象创建和依赖,必须在spring配置中进行定义
6.编写客户端前
spring IoC容器的关键点:
*必须将被管理的对象定义到spring配置文件中
*必须定义构造函数或setter方法,让spring将对象注入过来。
<bean id="userManager" class="com.bjsxt.spring.manager.UserManagerImpl">
<constructor-arg ref="userDao4OracleImpl">构造方法注入
<property name="userDao" ref="userDao4OracleImpl"> setter方法
--------------------------------------------------------------------------------------------------------------------------------------
1.spring 的普通属性注入
参见:spring文档3.3章节
什么是属性编辑器,作用?
*自定义属性编辑器,spring配置文件中的字符串装换成相应的对象进行注入
spring已经有内置的属性编辑器,我们可以根据需求自己定义属性编辑器
*如何定义属性编辑器?
*继承PropertyEditorSupport类,覆写setAsText()方法,参见:UtilDatePropertyEditor.java
*将属性编辑器注册到spring中,参见:applicationContext-editor.xml
依赖对象的注入方式,可以采用:
*ref属性
*<ref>标签
*内部<bean>来定义
如何将 公共的注入定义描述出来?
*通过<bean>标签定义公共的属性,指定abstract=true
*具有相同属性的类在<bean>标签中指定其parent属性
<!--applicationContext-editor,xml-->
<beans ******>
<bean id="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfiurer">
<property name="customEditors">
<map>
<entry key="java.util.Date">
<bean class="com.bjsxt.spring.UtilDatePropertyEditor"/>
</entry>
</map>
</property>
</bean>
</beans>
<!--UtilDatePropertyEditor.java-->
public class UtilDatePropertyeditor extends PropertyEditorSupport {
private String format = "yyyy-MM-dd";
public void serAsText (String text) throws IllegalArgumentException{
system.out.println("UtilDatePropertyEditor.saveAsText ()--text="+text);
SimpleDateFormat sdf= new SimpleDateFormat (format);
try{
Date d= sdf.parse(text);
this.serVale(d) ;
}catch(ParseException e ){
e.printStackTrace();
}
}
}