術語
軟件框架(software framework)
通常指的是爲了實現某個業界標準或完成特定基本任務的軟件組件規範,也指爲了實現某個軟件組件規範時,提供規範所要求之基礎功能的軟件產品
Spring Boot簡介
Spring Boot是對Spring的擴展,採用了約定優於配置(Convention Over Configuration)的軟件設計範式,從而大大減少了Spring開發過程中的配置。
Spring Boot 可以很方便的引入符合Spring Boot框架的第三方庫,方便到要把大象裝進冰箱裏只需要三個步驟一樣容易,在Spring Boot中我們把它稱爲三板斧,加依賴、寫註解、寫配置。
Spring Boot項目
Spring Boot是一個多模塊項目,所有模塊都包含了Spring Boot模塊
模塊名稱 | 描述 |
---|---|
Spring-boot | 公共模塊,其它模塊都依賴於這個模塊。它主要提供了@SpringApplication註解、將配置進行外部化(使用yaml或properties進行配置)、嵌入web容器(Tomcat,Jetty或undertow),初始化ApplicationContext(應用上下文) |
spring-boot-autoconfigure | 實現約定大於配置的核心模塊 |
spring-boot-starters | 功能模塊,它包含很多模塊,這些模塊會引入spring-boot-autoconfigure做一些約定的配置,例如引入spring-boot-starter-data-jpa模塊後,只需要在配置文件中寫入數據庫地址、用戶和密碼就可以操作數據庫。 |
spring-boot-cli | 編譯和運行Groovy代碼 |
spring-boot-actuator | 監控和管理Spring Boot應用,比如健康檢查、審計、統計和HTTP追蹤等 |
spring-boot-actuator-autoconfigure | 根據classpath自動配置endpoints |
spring-boot-test | 提供測試的註解,只需要在項目中引用spring-boot-starter-test模塊即可 |
spring-boot-test-autoconfigure | 根據classpath進行配置測試需要的環境 |
spring-boot-loader | 該模塊可以使項目具有打包爲可執行jar或war文件的可能 |
spring-boot-parent | 對版本的管理 |
spring-boot-docs | spring文檔 |
在Spring Boot 項目中看下spring-boot-starter-jdbc是如何實現的,在spring-boot-starter-jdbc只存在一個build.gradle的文件,該文件引入了當前項目的spring-boot-starter模塊和Spring的spring-jdbc業務實現模塊
plugins {
id "org.springframework.boot.starter"
}
description = "Starter for using JDBC with the HikariCP connection pool"
dependencies {
api(platform(project(":spring-boot-project:spring-boot-dependencies")))
api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter"))
api("com.zaxxer:HikariCP")
api("org.springframework:spring-jdbc")
}
在spring-boot-starter的build.gradle文件中看到該模塊引入了spring-boot-autoconfigure模塊
plugins {
id "org.springframework.boot.starter"
}
description = "Core starter, including auto-configuration support, logging and YAML"
dependencies {
api(platform(project(":spring-boot-project:spring-boot-dependencies")))
api(project(":spring-boot-project:spring-boot"))
api(project(":spring-boot-project:spring-boot-autoconfigure"))
api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-logging"))
api("jakarta.annotation:jakarta.annotation-api")
api("org.springframework:spring-core")
api("org.yaml:snakeyaml")
}
spring-boot-autoconfigure模塊的jdbc自動化配置具體實現
Spring、Spring MVC和Spring Boot的對比
Spring 創建了一套IOC、DI和AOP的規範,可以方便的創建JaveBean。
Spring MVC 是MVC的開發框架,規範了WEB應用和網絡接口
Spring Boot 實現自動配置,降低項目搭建的複雜度
環境搭建
開發Spring Boot應用依賴環境
- jdk8 及以上版本,此環境使用jdk8
- maven3.3及以上版本,此環境使用maven3.6.0
搭建前準備
jdk8環境搭建
安裝完成,運行java -version
maven3.6.0環境搭建
可以使用IDEA默認的maven不需要以下安裝
安裝完成,運行 mvn -v
修改IDEA默認的maven,打開IDEA,File -> Settings 或快捷鍵Ctrl + Alt + S
IDEA創建項目
打開IDEA, File -> New -> Project 打開以下界面。如果Choose Initializr Service URL選擇Custom需要自己搭建Spring Boot Initializr。如果使用IDEA的Spring Iniializr創建出現連接超時,可以到 http://start.spring.io 上創建後下載到本運行。
選擇JDK的版本和初始化的源
添加一些項目相關的信息
選擇導入的模塊
工程的目錄
可以刪除 .mvn文件夾、mvnw和mvnw.cmd文件。
導入maven包
在啓動類中添加測試的web接口
@SpringBootApplication
@RestController
public class HelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
@GetMapping("/hello-world")
public String helloWorld() {
return "<h1>Hello world!</h1>";
}
}
總結
基於Spring Boot可以快速搭建Web或控制檯程序