SpringBoot(2.1.9.RELEASE)快速入門


一、SpringBoot簡介

  Spring Boot 是 Spring 開源組織下的子項目,是 Spring 組件一站式解決方案,主要是簡化了使用 Spring 的難度,簡省了繁重的配置,提供了各種啟動器,開發者能快速上手。

解決:

  • "Spring全家桶" 時代。

  • SpringBoot --> J2EE一站式解決方案。

  • SpringCloud --> 分布式整體解決方案。

特性:

  • 快速創建獨立運行的 Spring 應用程序。

  • 直接嵌入式的 Tomcat、Jetty 或 Undertow,無需部署WAR包文件。

  • 提供各種 “starter(啟動器)” 依賴關系,以簡化構建配置。

  • 大量的自動配置,簡化開發,也支持修改默認值。

  • 提供可用於生產環境的特性,例如度量指標、健康檢查和外部化配置。

  • 完全不需要代碼生成,也不需要XML配置。

 

二、准備工作

學習前必須掌握以下內容:

  • Spring 框架的使用經驗

  • 熟練使用 Maven/Gradle 進行項目構建

  • 熟練使用 IDEA 和 Eclipse

環境約束:

  • Jdk1.8

  • Gradle 4.10

  • IntelliJ IDEA 2020

  • Spring Boot 2.1.9.RELEASE

系統要求:雖然你可以在Java 6或7上使用 Spring Boot,但是建議用Java 8。

 

三、使用Spring Initializr初始化SpringBoot項目

  萬事開頭難,你需要設置一個目錄結構存放各種項目內容,創建構建文件,並在其中加入各種依賴。如果你傾向於傳統 Java 項目結構,可以去看看 Spring Initializr。 Spring Initializr 從本質上來說就是一個Web應用程序,它能為你生成 Spring Boot 項目結構。雖然不能生成應用程序代碼,但它能為你提供一個基本的項目結構,以及一個用於構建代碼的Maven或Gradle構建說明文件。你只需要寫應用程序的代碼就好了。

最常用的 Spring Initializr 有以下兩種用法:

  • 通過Web界面使用。

  • 通過IntelliJ IDEA使用。

1.使用Spring Initializr的Web界面

要使用 Spring Initializr,最直接的辦法就是用瀏覽器打開 https://start.spring.iohttps://start.aliyun.com,你應該能看到類似下圖的表單。

Alibaba 構建項目官方版:

Spring 構建項目官方版:

  表單的頭三個問題是,你想用 Maven 還是 Gradle 來構建項目,選擇什么樣的語言開發,以及使用 Spring Boot 的哪個版本。程序默認生成 Maven 項目,我使用的是 Gradle 方式構建,並使用 Spring Boot 的最新版本,但你也可以自由選擇其他選項。

表單左側 Project Metadata 要你指定項目的一些基本信息。最起碼你要提供項目的 Group 和 Artifact,分別是項目組(公司域名)Name 與 Artifact 是項目名稱兩者意思相同,Description 是項目描述信息可選,Package name 是包名,這些信息是用來生成 Maven 的 pom.xml 文件或者 Gradle 的 build.gradle 文件的。

填完表單,選好依賴,點擊 “Generate Ctrl” 按鈕,Spring Initializr 就會為你生成一個項目。瀏覽器將會以ZIP文件的形式(文件名取決於 Artifact 字段的內容)把這個項目下載下來。根據你的選擇,ZIP文件的內容也會略有不同。不管怎樣,ZIP文件都會包含一個極其基礎的項目,讓你能着手使用 Spring Boot 開發應用程序。

舉例來說,假設你在 Spring Initializr 里指定了如下信息。

  • Artifact:springboot-learning

  • 包名:org.wesson.springboot.study

  • 類型:Gradle項目

  • 依賴:Spring Web

點擊“Generate Ctrl”,就能獲得一個名為springboot-learning.zip的ZIP文件。解壓后的項目結構如下圖:

如你所見,項目里基本沒有代碼,除了幾個空目錄外,還包含了如下幾樣東西。

  • Application.java:一個帶有main()方法的類,用於引導啟動應用程序。

  • ApplicationTests.java:一個空的JUnit測試類,它加載了一個使用Spring Boot自動配置功能的Spring應用程序上下文。

  • build.gradle:Gradle 構建說明文件。如果選擇 Maven 項目,這就會換成 pom.xml。

  • application.properties:一個空的properties文件,你可以根據需要添加配置屬性。

在 Spring Boot 應用程序中,就連空目錄都有自己的意義。static 目錄放置的是 Web 應用程序的靜態內容(JavaScript、樣式表、圖片,等等)。還有用於呈現模型數據的模板會放在 templates 目錄里。

2.在IntelliJ IDEA里創建SpringBoot項目

要在 IntelliJ IDEA 里創建新的 Spring Boot 應用程序,在 File 菜單里選擇 New > Project。你會看到幾屏內容,問的問題和 Initializr 的 Web 應用程序類似。

  首先顯示的是 Spring Boot 初始化向導的第一屏內容中,在左側項目選擇里選中 Spring Initializr,隨后會提示你選擇一個 Project SDK(選擇 Java Jdk 版本),同時選擇 Initializr Web 服務的位置,選擇 Default 默認即可,直接點擊 Next 按鈕:

接着顯示的是 Spring Boot 初始化向導的第二屏內容,要求你提供項目的一些基本信息,比如項目名稱、Group 和 Artifact、Java 版本、Package 包名,以及你是想用 Maven 還是 Gradle 來構建項目。描述好項目信息之后,點擊 Next 按鈕:

然后顯示的是 Spring Boot 初始化向導得到第三屏內容,這里你可以選擇要往項目添加什么樣的依賴。和之前一 樣,屏幕里的復選框和 Spring Boot 起步依賴是對應的。選完之后點擊 Next 即可:

最后一屏問你項目叫什么名字,還有要在哪里創建項目。一切准備就緒之后,點擊 Finish 按鈕,就能在 IDEA 里得到一個空的 Spring Boot 項目了:

 

四、永遠的Hello World

1.新建Module

上面已經創建過父級項目工程了,了解過 Spring Boot 工程目錄后,父級項目中的 src 目錄就可以刪除了:

在以后的學習中,我們使用 IntelliJ IDEA New 一個 Module 子項目名叫 springboot-hello 進行編寫代碼:

2.build.gradle項目依賴

引入spring-boot-starter-web依賴:使用Spring MVC構建Web(包括RESTful)應用程序的入門程序。使用Tomcat作為默認的嵌入式容器

plugins {
    id 'org.springframework.boot' version '2.1.9.RELEASE'
    id 'io.spring.dependency-management' version '1.0.9.RELEASE'
    id 'java'
}

group = 'org.wesson.springboot.hello'
version = '1.0.0'
sourceCompatibility = '1.8'

repositories {
    maven {
        // 指定阿里雲遠程倉庫的位置,能夠加快導入第三方jar包速度
        url = "http://maven.aliyun.com/nexus/content/groups/public/"
    }
    mavenCentral()
}

dependencies {
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web'
    testCompile group: 'org.springframework.boot', name: 'spring-boot-starter-test'
}

3.啟動類SpringbootHelloApplication.java

@SpringBootApplication 核心注解含義:該注解標記當前".java"不僅是啟動引導類,也是配置類,說明這是一個Spring Boot應用程序。

package org.wesson.springboot.hello;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @SpringBootApplication = @Configuration + @EnableAutoConfiguration + @ComponentScan
 */
@SpringBootApplication
public class SpringbootHelloApplication {

    public static void main(String[] args) {
        // 負責啟動Spring引導應用程序
        SpringApplication.run(SpringbootHelloApplication.class, args);
    }

}
View Code

我們一起來復習一下之前 SSM 框架的三個注解吧,看看大家還能想起來多少:

  • @Configuration:用於定義配置類,可替換xml配置文件,被注解的類內部包含有一個或多個被@Bean注解的方法。

  • @EnableAutoConfiguration:開啟Spring Boot自動配置的機制。

  • @ComponentScan:開啟@Component對應用程序指定包下注解(@Repository、@Service、@Controller)進行Spring組件掃描。

4.Controller

package org.wesson.springboot.hello.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @RestController = @Controller + @ResponseBody
 */
@RestController
@RequestMapping("/demo")
public class HelloController {

    /**
     * @GetMapping = @RequestMapping(method = RequestMethod.GET),method:指定請求的方法類型(GET,POST,PUT,DELETE)等。
     */
    @GetMapping("/hello")
    public String hello() {
        return "Hello World!";
    }

}
View Code

5.測試

運行一個名叫 SpringbootHelloApplication.java 的啟動類,可以一起來看以下內嵌式的 Tomcat 運行效果,控制台默認顯示8080端口號:

瀏覽器訪問 http://localhost:8080/demo/hello 請求,輸出結果如下:

 

五、什么是SpringBoot啟動器

  啟動器(Starters)是一套非常方便的依賴管理工具,它能夠讓你在自己的應用程序中包含它們。你可以獲得一個一站式的 https://mvnrepository.com Maven 倉庫網址,里面有你需要的所有 Spring 和相關技術。只要是創建 Spring Boot 項目,你所需要的第三方 Jar 包都能夠從該官網上找到,比如下面搜索一個 spring web 依賴:

由於現在學習的是 Spring Boot,就選擇 Spring Boot Web Starter 啟動器,點進去之后你就能看到發布的所有版本號了:

我使用的 Spring Boot 版本號是 2.1.9.RELEASE,個人覺得還是挺穩定的。黃色圈下面的菜單你就能夠看到 Maven 與 Gradle 的依賴資源了:

所有啟動器都遵循類似的命名方式:spring-boot-starter-*,其中*是特定類型的應用程序(也可以說是你所需要引入的某某技術)。這個命名結構是為了在你需要查找啟動器時提供幫助。更多詳細的 Spring Boot 常用啟動器請參考官方文檔:Starters

Java 學習到這個階段,自己還不會創建項目和查找依賴的話就實在有點說不過去了!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM