1.介绍DI
DI就是依赖注入,有一个那么高大上的词,其实就是为一个类添加一些属性,但是这个属性的实例就靠spring在来注入
2.HelloWorld
这里有5个java文件一个xml文件,基本思路,客户端调用服务实现接口的addUser方法,添加一个用户,添加用户需要把数据保存在数据库,所以服务实现类里面new一个UserDao,然后调用UserDao去执行createUser的操作
UserDao
public interface UserDao { void createUser(); }
UserDaoImpl
public void createUser() { System.out.println("创建一个新的用户"); }
UserService
public interface UserService { /** * 添加用户 */ void addUser(); }
UserServiceImpl
public class UserServiceImpl implements UserService{ private UserDao userDao; /** * 实现接口方法 */ public void addUser() { userDao.createUser(); } public void setUserDao(UserDao userDao) { this.userDao = userDao; } public UserDao getUserDao() { return userDao; } }
UserServiceTest
public class UserServiceTest { @Test public void test() { //以前 // UserService userService = new UserServiceImpl(); // userService.addUser(); /** * spring的写法,这是一个工厂类,这里有一个参数,参数对应配置文件的classpath位置,src为根目录 */ ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("/com/test/spring/di/springConfig.xml"); //这里的参数为 配置文件中 bean id,意思就是获取 对应id实例对象 UserService us_1 = (UserService)context.getBean("userServiceBean"); us_1.addUser(); }
springConfig.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <!-- 创建bean --> <bean id="userServiceBean" class="com.test.spring.di.UserServiceImpl"> <!-- 注入参数,name是对应实现类中的 参数名,ref是对应bean的ID --> <property name="userDao" ref="userDaoBean"></property> </bean> <!-- 创建bean --> <bean id="userDaoBean" class="com.test.spring.di.UserDaoImpl"></bean> </beans>
3. 其它的参数
原文:https://www.cnblogs.com/oscar1987121/p/10875137.html