1、UserDAO 接口
2、UserDaoImpl 实现类
3、UserService 业务接口
4、UserServiceImpl 业务实现类
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
- 使用set注入,结构程序不需要改变;控制反转;程序员不用再去管理对象的创建了;系统耦合性大大降低;可以更加专注在业务的实现上。
- 主动权在用户 ```java import com.abc.dao.UserDAO;
//使用set接口 public void setUserDao(UserDAO userDao){ this.userDao = userDao; }
public void getuser() { userDao.getUser(); }
```java
//main:
UserService userService = new UserServiceImpl();
((UserServiceImpl) userService).setUserDao(new UserDaoSqlServerImpl());
((UserServiceImpl) userService).setUserDao(new UserDaoPrintServerImpl());
userService.getuser();
- 控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。
在Spring中实现控制反转的是IoC容器,其实现方式是依赖注入(DI)。 - 使用Spring后,对象由Spring创建,对象的属性由Spring容器设置。
反转的理解:程序本身不创建对象,而变成被动的接收对象。 ```java <?xml version=”1.0” encoding=”UTF-8” ?>
<!— ref:引用Spring容器中创建的对象 value:具体的值,基本数据对象;
``` �