天天看點

江帥帥:精通 Spring Boot 系列 01

attachments-2020-06-pF3C9JWX5ee7419ea519e.jpg

1、Spring Boot 概述

Spring 架構,作為一個非常優秀的輕量級容器,在企業級項目開發中非常受歡迎,但它在使用期間需要整合衆多第三方資源,都會導緻配置過于臃腫,這也是令大家非常頭疼的問題。

Spring Boot 的出現,就是為了讓大家更友善去使用 Spring 架構進行開發,它基于“約定優于配置(COC)”的設計理念,它實作了自動化配置解決方案,包括自動配置第三方資源,進而簡化了 Spring 應用的建立、運作、調試、部署等友善的操作,讓開發者更專注在應用業務的實作上。

其實,Spring Boot 可以想象成一個中介,它是開發者和 Spring 架構的簡化溝通平台,有些“手續(應用的配置)”它直接就幫我們辦理好了,這些“手續”其實就是業務流程中某些預設的流程(也就是預設的配置),剛好就是上面說的“約定優于配置”的理念。Sprint Boot 的最終目的,就是為了提升開發者在業務實作上的專注度。

2、Spring Boot 的優勢

繼承了 Spring 架構自身優秀的特性。

能夠讓配置更簡單,通過自動配置快速搭建 Spring 應用項目。

能夠以 jar 檔案形式獨立運作項目。

更強大的注解,讓業務實作更簡化。

内嵌了常見的 Web 伺服器,讓你随時使用 Tomcat、Jetty 等。

提供了企業生産級項目的服務監控方案,讓監控更加簡單。

還有一些非功能性的通用配置,适應更多的開發需求。

可進行分布式開發,結合 Spring Cloud 進行微服務開發。

3、搭建 Spring Boot 項目

3.1 建立 Maven 項目

第一步:菜單欄中選擇 File → New → Project... 彈出下圖,然後選擇 Maven,再點選 Next 即可。

attachments-2020-06-Ebk4OJph5ee7423d548f4.jpg

第二步:填寫組織名稱、子產品名稱、項目版本等相關資訊,如下圖:

attachments-2020-06-GZ5zN5uV5ee7424ce5efb.jpg

第三步:選擇項目的儲存位置,如下圖:

attachments-2020-06-4gNDH5FY5ee742817a495.jpg

建立好之後的項目具體目錄,如下圖:

attachments-2020-06-Ksa8m2Qs5ee7429371342.jpg

建立好之後的項目本地檔案夾具體目錄,如下圖:

attachments-2020-06-k4bRYRwW5ee742a29752b.jpg

3.2 關于項目中目錄的相關解釋

src/main/java:用來存儲編寫好的 Java 源碼檔案,也就是 xxx.java 檔案。

src/main/resources:用來存儲編寫好的配置檔案。

src/test/java:主要用來存儲測試用的 Java 源碼檔案。

3.3 添加配置與代碼

第1步:編輯 pom.xml 檔案

pom.xml 檔案,全稱項目對象模型(Project Object Model)描述檔案,作為 Maven 的基礎配置檔案,常被用來指定項目中的依賴配置。

接着,我們需要在 pom.xml 檔案中添加相關依賴,具體如下:

首先,使用 标簽指定 spring-boot-starter-parent 依賴子產品,單從标簽名字上來看,就知道它想指定(繼承)父類級别的東西。

在建構 Spring Boot 應用時設定它,也就意味着會自動包含能簡化我們工作的自動配置、日志和 YAML 等大量的配置。它作為 Spring Boot 的核心啟動器,提供一些 Maven 預設的配置和 dependency-management,能讓你快速使用 Spring Boot 進行開發。

比如,這裡指定了 parent 的版本号,當我們在引入其他依賴的時候,就不用再去關心它們的版本号了,在以前是需要考慮的,而且還很容易引起版本沖突。

編輯 pom.xml 檔案

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>2.2.1.RELEASE</version>
           

如果,我們需要進行 Web 開發,還需要指定 spring-boot-starter-web 依賴子產品,需要在 pom.xml 檔案中添加 元素來進行指定,具體如下:

指定 web 依賴子產品

org.springframework.boot

<artifactId>spring-boot-starter-web</artifactId>
           

最後,還可以通過 元素來添加插件,比如設定 Spring Boot 的 Maven 插件 Spring Boot Maven plugin,它能夠為 Spring Boot 應用提供執行 Maven 操作。此插件,能夠将 Spring Boot 應用進行打包為可執行的 jar 或 war 形式的檔案,然後以通常的方式來運作。具體配置如下:

添加 maven 插件

<plugins>

    <plugin>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-maven-plugin</artifactId>

    </plugin>

</plugins>
           

完整的 pom.xml 檔案,具體如下:

完整的 pom.xml 檔案源碼

<?xml version="1.0" encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
           
<groupId>com.nx</groupId>

<artifactId>SpringDemo</artifactId>

<version>1.0-SNAPSHOT</version>
           
<!-- 指定 parent 版本 -->

<parent>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-parent</artifactId>

    <version>2.2.1.RELEASE</version>

</parent>
           
<!-- 指定 web 依賴子產品 -->

<dependencies>

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-web</artifactId>

    </dependency>

</dependencies>
           
<!-- 設定 maven 插件 -->

<build>

    <plugins>

        <plugin>
           
<artifactId>spring-boot-maven-plugin</artifactId>

        </plugin>

    </plugins>

</build>
           

第2步:添加 Controller 類

建立一個 com.nx 的 package,然後添加一個 HelloControler 類,如圖位置:

attachments-2020-06-p4rMxZ1L5ee7433f5eb19.jpg

HelloController 控制器類的代碼,具體如下:

HelloController 控制器

package com.nx.controller;

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

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

@RestController

public class HelloController {

@RequestMapping("/hello")

public String sayHello(){

    return "I Love Spring Boot.";

}
           

}

@RestController 注解是一個組合注解,它包含了 @Controller 和 @ResponseBody 兩個注解,說明它能以 JSON 格式進行響應資料。注解的源碼如下:

@RestController 注解源碼

@Target({ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Documented

@Controller

@ResponseBody

public @interface RestController {

@AliasFor(

    annotation = Controller.class

)

String value() default "";
           

第3步:添加 Spring Boot 啟動類

啟動類的路徑,需要能夠讓 spring boot 掃描得到其他的元件,添加位置:

attachments-2020-06-ke0RASmJ5ee743886d643.jpg

SpringBootApp 啟動類的代碼,具體如下:

SpringBootApp 啟動類

package com.nx;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

// 用于指定 Spring Boot 應用的啟動類

@SpringBootApplication

public class SpringBootApp {

public static void main(String[] args) {

    // 從 main 方法中進行啟動 Spring 應用中的類

    SpringApplication.run(SpringBootApp.class, args);

}
           

3.4 啟動 Spring Boot 項目

有三種啟動方式,具體如下:

使用 Maven 指令啟動

運作 main 方法啟動

使用 Maven 打包啟動

第1種:使用 Maven 指令啟動

使用 Maven 指令:

spring-boot:run

指定項目路徑和 Maven 指令,具體如下

attachments-2020-06-t3MpyyQH5ee743fa8dca3.jpg

attachments-2020-06-J7SSoBr15ee744250bd7c.jpg

第 2 種:運作 main 方法啟動

attachments-2020-06-xZwJeJj65ee74437318e7.jpg

第 3 種:使用 Maven 打包啟動

需要将 Spring Boot 應用打成一個 jar 包運作。

首先,在 IDEA 的右邊欄中,打開 Maven 即可看到如下頁面,輕按兩下 package 指令。

attachments-2020-06-UHozANCZ5ee74452af818.jpg

然後,找到項目所在路徑下的 target 檔案夾,打開即可看到生成的 jar 檔案。

attachments-2020-06-i0B61syk5ee7446310847.jpg

最後,通過指令行進入到 jar 檔案所在目錄下,并執行 java -jar 指令。

java -jar .SpringDemo-1.0-SNAPSHOT.jar

attachments-2020-06-BwXJJzDc5ee74473102a9.jpg

3.5 通路 Spring Boot 應用

打開浏覽器,在位址欄中輸入請求位址:

http://localhost:8080/hello

,然後回車進行通路。

attachments-2020-06-EtZ9layG5ee7448414363.jpg

未完待續,等我下一篇嗷 ~~~