Spring 是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架
导入 jar 包:spring-webmvc、spring-jdbc
<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>
SpringBoot:(构建)
1.一个快速开发的脚手架
2.基于 SpringBoot 可以快速开发单个微服务
3.约定大于配置
SpringCloud:(协调)
SpringCloud 是基于 SpringBoot 实现的
dao 层即 Data Access Object
service 层即业务层,在业务层调用 dao 层
使用 set 注入后,程序不再具有主动性,而是变成了被动的接收对象
写个测试类调用 set 方法
用户实际调用的是业务层,dao 层用户不需要接触(程序在 dao 层修改)
即不通过直接访问 dao 层,通过 service 层作为桥梁来调用
UserServiceImpl 类代码:
package com.demo.service;
import com.demo.dao.UserDao;
public class UserServiceImpl implements UserService{
private UserDao userDao;
//利用set进行动态实现值的注入
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void getUser() {
userDao.getUser(); //业务层调dao层
}
}
MyTest 类代码:
import com.demo.dao.UserDaoMysqlImpl;
import com.demo.service.UserService;
import com.demo.service.UserServiceImpl;
public class MyTest {
public static void main(String[] args) {
/*
用户实际调用的是业务层,dao层不需要接触
即不通过直接访问dao层,通过service作为桥梁来调用
*/
UserService userService = new UserServiceImpl();
((UserServiceImpl)userService).setUserDao(new UserDaoMysqlImpl());
userService.getUser();
}
}
IOC 控制反转(Inversion of Control),获得依赖对象的方式反转,即把选择权交给用户,其实现方式是依赖注入(Dependency Injection,DI)
(如果不是这种设计思想,主动权在业务层,
private UserDao userDao = new UserDaoImpl(); 每次都要 new 新的 dao 层类,不适用)