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;}@Overridepublic 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 层类,不适用)