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 層類,不適用)