接口代码就不粘了,主要就是类和xml文件中如何配置
类InjectionDAOImpl和类InjectionServiceImpl
public class InjectionDAOImpl implements InjectionDAO{
@Override
public void save(String arg) {
//模拟数据库保存数据
System.out.println("保存数据:"+arg);
}
}
public class InjectionServiceImpl implements InjectionService{
//对象名称为在xml中Property中name属性
private InjectionDAO injectionDAO;
/**
* 构造器注入
* @param injectionDao
*/
public InjectionServiceImpl(InjectionDAO injectionDao){
this.injectionDAO=injectionDao;
}
/**
* 设置注入
* 没有显性调用,而是通过xml文件的配置
* 通过set注入方式来完成
* @param injectionDAO
*/
public void setInjectionDAO(InjectionDAO injectionDAO) {
this.injectionDAO = injectionDAO;
}
@Override
public void save(String arg) {
//模拟业务操作
System.out.println("Service接收参数:"+arg);
arg=arg+"."+this.hashCode();
//传入经过业务逻辑处理后的参数
injectionDAO.save(arg);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd" >
<!-- <bean id="injectionService" class="test2.InjectionServiceImpl">
<property name="injectionDAO" ref="injectionDAO"></property>
</bean> -->
<bean id="injectionService" class="test2.InjectionServiceImpl">
<constructor-arg name="injectionDao" ref="injectionDAO"></constructor-arg>
</bean>
<bean id="injectionDAO" class="test2.InjectionDAOImpl"></bean>
</beans>
注意无论是property还是constructor中的name都需要和类中方法的参数一致,否则会出错
后面的ref需要和所注入对象-->类--->bean id 一致