江帥帥:精通 Spring Boot 系列 01

江帥帥:精通 Spring Boot 系列 01
一、Spring Boot 概述java

Spring 框架,做爲一個很是優秀的輕量級容器,在企業級項目開發中很是受歡迎,但它在使用期間須要整合衆多第三方資源,都會致使配置過於臃腫,這也是令你們很是頭疼的問題。web

Spring Boot 的出現,就是爲了讓你們更方便去使用 Spring 框架進行開發,它基於「約定優於配置(COC)」的設計理念,它實現了自動化配置解決方案,包括自動配置第三方資源,從而簡化了 Spring 應用的建立、運行、調試、部署等方便的操做,讓開發者更專一在應用業務的實現上。spring

其實,Spring Boot 能夠想象成一箇中介,它是開發者和 Spring 框架的簡化溝通平臺,有些「手續(應用的配置)」它直接就幫咱們辦理好了,這些「手續」其實就是業務流程中某些默認的流程(也就是默認的配置),恰好就是上面說的「約定優於配置」的理念。Sprint Boot 的最終目的,就是爲了提高開發者在業務實現上的專一度。apache

二、Spring Boot 的優點瀏覽器

繼承了 Spring 框架自身優秀的特性。服務器

可以讓配置更簡單,經過自動配置快速搭建 Spring 應用項目。 app

可以以 jar 文件形式獨立運行項目。框架

更強大的註解,讓業務實現更簡化。 maven

內嵌了常見的 Web 服務器,讓你隨時使用 Tomcat、Jetty 等。 分佈式

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

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

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

三、搭建 Spring Boot 項目

3.1 建立 Maven 項目

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

江帥帥:精通 Spring Boot 系列 01

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

江帥帥:精通 Spring Boot 系列 01

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

江帥帥:精通 Spring Boot 系列 01

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

江帥帥:精通 Spring Boot 系列 01

建立好以後的項目本地文件夾具體目錄,以下圖:

江帥帥:精通 Spring Boot 系列 01

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 類,如圖位置:

江帥帥:精通 Spring Boot 系列 01

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

江帥帥:精通 Spring Boot 系列 01

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 命令,具體以下

江帥帥:精通 Spring Boot 系列 01
江帥帥:精通 Spring Boot 系列 01
第 2 種:運行 main 方法啓動

江帥帥:精通 Spring Boot 系列 01

第 3 種:使用 Maven 打包啓動

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

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

江帥帥:精通 Spring Boot 系列 01

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

江帥帥:精通 Spring Boot 系列 01

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

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

江帥帥:精通 Spring Boot 系列 01

3.5 訪問 Spring Boot 應用

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

http://localhost:8080/hello,而後回車進行訪問
江帥帥:精通 Spring Boot 系列 01未完待續,等我下一篇嗷 ~~~