1、UserDAO 接口

2、UserDaoImpl 实现类

3、UserService 业务接口

4、UserServiceImpl 业务实现类

  1. <dependency>
  2. <groupId>org.springframework</groupId>
  3. <artifactId>spring-webmvc</artifactId>
  4. <version>5.2.0.RELEASE</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework</groupId>
  8. <artifactId>spring-jdbc</artifactId>
  9. <version>5.2.0.RELEASE</version>
  10. </dependency>
  • 使用set注入,结构程序不需要改变;控制反转;程序员不用再去管理对象的创建了;系统耦合性大大降低;可以更加专注在业务的实现上。
  • 主动权在用户 ```java import com.abc.dao.UserDAO;

//使用set接口 public void setUserDao(UserDAO userDao){ this.userDao = userDao; }

public void getuser() { userDao.getUser(); }

  1. ```java
  2. //main:
  3. UserService userService = new UserServiceImpl();
  4. ((UserServiceImpl) userService).setUserDao(new UserDaoSqlServerImpl());
  5. ((UserServiceImpl) userService).setUserDao(new UserDaoPrintServerImpl());
  6. userService.getuser();
  • 控制反转是一种通过描述XML或注解)并通过第三方去生产或获取特定对象的方式。
    在Spring中实现控制反转的是IoC容器,其实现方式是依赖注入(DI)
  • 使用Spring后,对象由Spring创建,对象的属性由Spring容器设置。
  • 反转的理解:程序本身不创建对象,而变成被动的接收对象。 ```java <?xml version=”1.0” encoding=”UTF-8” ?>

    <!— ref:引用Spring容器中创建的对象 value:具体的值,基本数据对象;

``` �