使用set方法实现DI依赖注入
通过写set方法,注入set方法,达到”从spring容器获取的service bean内部包含dao对象”的目的
[开发步骤]
- dao实现类中写set方法
- xml中配置set方法
- 测试类中无需改动,此时从spring容器获取service对象默认包含dao对象
MODULE:jSpringAbc
com.it.service包
UserService接口
package com.it.service;
public interface UserService {
void save();
}
com.it.service.impl包
UserServiceImpl类
package com.it.service.impl;
import com.it.dao.UserDao;
import com.it.service.UserService;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void save() {
userDao.save();
}
}
resources包
applicationContext.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="userDao" class="com.it.dao.impl.UserDaoImpl"/>
<bean id="userService" class="com.it.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
</beans>
com.it.test包
SetDependencyInjectDemo类
package com.it.test;
import com.it.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class SetDependencyInjectDemo {
public static void main(String[] args) {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService=(UserService)applicationContext.getBean("userService");
userService.save();
}
}