Spring Boot 簡介及環境搭建

術語

軟件框架(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模塊

模塊名稱 描述
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環境搭建

windows 安裝

linux 安裝

mac os 安裝

安裝完成,運行java -version

maven3.6.0環境搭建

可以使用IDEA默認的maven不需要以下安裝

windows 安裝

linux 安裝

mac os 安裝

安裝完成,運行 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或控制檯程序

參考

springBoot快速啓動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章