精通 Spring Boot 系列 01

佳雲大腦 發佈 2020-08-20T18:11:20+00:00

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


閱讀全文,約 12 分鐘


這是江帥帥的第001篇原創


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 即可。



第二步:填寫組織名稱、模塊名稱、項目版本等相關信息,如下圖:



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



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



創建好之後的項目本地文件夾具體目錄,如下圖:



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 文件中添加相關依賴,具體如下:


首先,使用 <parent> 標籤指定 spring-boot-starter-parent 依賴模塊,單從標籤名字上來看,就知道它想指定(繼承)父類級別的東西。


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


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


編輯 pom.xml 文件

<parent>

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

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

<version>2.2.1.RELEASE</version>

</parent>


如果,我們需要進行 Web 開發,還需要指定 spring-boot-starter-web 依賴模塊,需要在 pom.xml 文件中添加 <dependency…/> 元素來進行指定,具體如下:


指定 web 依賴模塊

<dependency>

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

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

</dependency>


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


添加 maven 插件

<build>

<plugins>

<plugin>

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

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

</plugin>

</plugins>

</build>


完整的 pom.xml 文件,具體如下:


完整的 pom.xml 文件源碼

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

<project xmlns="http://maven.apache.org/POM/4.0.0"

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>

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

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

</plugin>

</plugins>

</build>

</project>


第2步:添加 Controller 類


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



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 掃描得到其他的組件,添加位置:



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 項目


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


  1. 使用 Maven 命令啟動
  2. 運行 main 方法啟動
  3. 使用 Maven 打包啟動


第1種:使用 Maven 命令啟動


使用 Maven 命令:

spring-boot:run

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




第 2 種:運行 main 方法啟動



第 3 種:使用 Maven 打包啟動


需要將 Spring Boot 應用打成一個 jar 包運行。

首先,在 IDEA 的右邊欄中,打開 Maven 即可看到如下頁面,雙擊 package 命令。


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



最後,通過命令行進入到 jar 文件所在目錄下,並執行 java -jar 命令。

java -jar .\SpringDemo-1.0-SNAPSHOT.jar


3.5 訪問 Spring Boot 應用


打開瀏覽器,在地址欄中輸入請求地址:

http://localhost:8080/hello,然後回車進行訪問。



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

轉自:公眾號:江帥帥(ID:NXJSS666)

關鍵字: