1. 程式人生 > >Spring Boot入門(一):搭建Spring Boot專案

Spring Boot入門(一):搭建Spring Boot專案

從本篇部落格開始,我們開始進入Spring Boot的世界,它的出現使Spring的開發變得更加簡潔,因此一經推出受到眾多程式設計師的喜愛。

作為Spring Boot系列的第一篇部落格,我們先來講解下如何搭建Spring Boot專案。

如果你直接就使用的是Spring Boot,建議你有時間可以學習下Spring,這樣更能體會到Spring Boot帶來的便利。

Spring系列部落格地址:https://www.cnblogs.com/zwwhnly/category/1407891.html。

1. 搭建Spring Boot專案的2種方式

1.1 方式1:使用官網搭建

首先,在瀏覽器中,輸入 https://start.spring.io/,會看到如下介面:

從上圖可以看出,Project預設值是Maven Project,Language預設值是Java,Spring Boot預設版本是2.1.9,因為符合我們的需求,所以這3項我們不做修改。

然後填寫專案資訊,即Project Metadata項,如下所示:

上圖中的Group,可理解為組織,一般為域名反過來,如果域名是zwwhnly.com,這裡就填com.zwwhnly。

Artifact,可理解為專案名,比如我這裡填寫的是springboot-action。

接著選擇依賴項,比如要新增Web依賴項,這裡可以按關鍵字搜尋Web依賴項,如下所示:

也可以按分類找到Web依賴項,如下所示:

不管以哪種方式新增,最終的結果都是下面這樣的:

最後,點選”Generate“按鈕生成專案程式碼:

解壓後的程式碼目錄如下圖所示:

從圖中可以看出,此處生成的其實就是一個簡單的基於Maven的專案,你可以使用自己喜歡的開發工具開啟該專案,比如IntelliJ IDEA。

1.2 方式2:使用IDEA搭建

首先,開啟開發工具IntelliJ IDEA,依次點選選單File--New--Project開啟新建專案對話方塊,先選中左側的“Spring Initializr”,然後選擇專案要使用的JDK版本,如1.8,點選"Next"按鈕:

按照下圖中的提示填寫好專案資訊、打包方式、Java版本等資訊,點選“Next"按鈕:

選擇專案要使用的依賴項(如Spring Web)以及Spring Boot的版本(如2.1.9),點選”Next“按鈕:

確認好專案名稱和專案要儲存的路徑,點選“Finish"按鈕,如果儲存的路徑不存在,會提示是否自動建立該目錄,點選“OK”即可:

建立好的專案結構圖如下所示:

Maven依賴樹如下所示:

2. 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.9.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zwwhnly</groupId>
    <artifactId>springboot-action</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springboot-action</name>
    <description>Spring Boot Action Code</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

關於pom.xml的整個講解,可以參考我之前寫的部落格:Spring入門(四):使用Maven管理Spring專案 ,這裡我們只講解下該檔案和之前不同的地方。

第1個值得注意的地方是檔案中的parent標籤:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

該標籤用於新增Spring Boot的父級依賴,其中spring-boot-starter-parent是一個特殊的starter,它用來提供相關的Maven預設依賴,使用它之後,常用的包依賴可以省去version標籤。

舉個具體的例子,我們往pom.xml中新增如下依賴:

<dependency>
   <groupId>com.rabbitmq</groupId>
   <artifactId>amqp-client</artifactId>
</dependency>

和預設的2個依賴一樣,我們並未指定該依賴的version版本,但是在Maven的依賴樹裡,卻能看到這3個依賴使用的版本,如下所示:

這就是parent標籤中引用spring-boot-starter-parent的作用,我們可以通過以下檔案來檢視它都提供了哪些依賴的預設版本資訊:

在該檔案中,我們可以找到spring-boot-starter-web、spring-boot-starter-test、amqp-client指定的版本資訊:

<properties>
    <rabbit-amqp-client.version>5.4.3</rabbit-amqp-client.version>
</properties>

<dependencies>
    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
        <version>${rabbit-amqp-client.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.1.9.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>2.1.9.RELEASE</version>
    </dependency>
</dependencies>

可以發現,指定的版本正是Maven依賴樹上看到的版本資訊。

不過可以通過指定version版本來覆蓋預設的版本,比如我們將amqp-client的依賴資訊修改為:

<dependency>
   <groupId>com.rabbitmq</groupId>
   <artifactId>amqp-client</artifactId>
   <version>5.7.0</version>
</dependency>

此時在Maven依賴樹看到的amqp-client的版本就變為了5.7.0:

第2個值得注意的地方是,檔案中添加了Spring Boot的編譯外掛:

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>

這裡我們也沒有指定version,所以使用的是預設的版本2.1.9.RELEASE(和上面使用amqp-client的原理一樣):

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <version>2.1.9.RELEASE</version>
</plugin>

3. 簡單演示

找到啟動類SpringbootActionApplication(名稱一般為ArtifactId+Application),看到預設程式碼如下:

package com.zwwhnly.springbootaction;

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

@SpringBootApplication
public class SpringbootActionApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootActionApplication.class, args);
    }
}

為方便演示,我們暫時在啟動類中新增一個Api介面:

package com.zwwhnly.springbootaction;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class SpringbootActionApplication {

    @RequestMapping("/")
    public String index() {
        return "Hello Spring Boot";
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringbootActionApplication.class, args);
    }
}

在啟動類中右鍵,然後選擇執行專案,看到如下資訊:

在瀏覽器中訪問http://localhost:8080/,會看到如下資訊:

@RestController註解和@RequestMapping註解其實是Spring MVC相關的註解,並不是Spring Boot特有的,關於Spring MVC的相關技術,可以檢視以下部落格:

  1. Spring入門(十二):Spring MVC使用講解
  2. Spring入門(十三):Spring MVC常用註解講解
  3. Spring入門(十四):Spring MVC控制器的2種測試方法

4. 關閉Banner

其實剛剛啟動專案時我們已經看到了Spring Boot的Banner,那麼你不禁要問什麼是Spring Boot的Banner呢?

其實就是下圖中紅色標記的地方:

也許有人會覺得每次啟動都顯示這些資訊並沒有實際意義,那麼我們如何關閉它呢?

4.1 通過程式碼關閉

原始碼:

public static void main(String[] args) {
    SpringApplication.run(SpringbootActionApplication.class, args);
}

修改後:

public static void main(String[] args) {
    //SpringApplication.run(SpringbootActionApplication.class, args);

    SpringApplication springApplication = new SpringApplication(SpringbootActionApplication.class);
    springApplication.setBannerMode(Banner.Mode.OFF);
    springApplication.run(args);
}

4.2 通過配置檔案關閉

預設情況下,新建的Spring Boot專案都有個空的application.properties配置檔案,可以新增如下配置:

spring.main.banner-mode=off

重新啟動專案,效果如下圖所示:

5. 原始碼及參考

原始碼地址:https://github.com/zwwhnly/springboot-action.git,歡迎下載。

汪雲飛《Java EE開發的顛覆者:Spring Boot實戰》

使用idea建立第一個springboot專案

Spring Boot-關閉Banner

關閉spring boot的banner

SpringBoot yml 配置

6. 最後

歡迎掃碼關注微信公眾號:「申城異鄉人」,定期分享Java技術乾貨,讓我們一起進步。

相關推薦

Spring Boot入門()搭建Spring Boot專案

從本篇部落格開始,我們開始進入Spring Boot的世界,它的出現使Spring的開發變得更加簡潔,因此一經推出受到眾多程式設計師的喜愛。 作為Spring Boot系列的第一篇部落格,我們先來講解下如何搭建Spring Boot專案。 如果你直接就使用的是Spring Boot,建議你有時間可以學習下S

Spring Boot 入門()入門案例

Springboot 入門 入門案例 建立spring boot專案 在pom.xml 檔案,我們需要新增兩部分依賴。 — 讓我們的專案繼承spring-boot-starter-parent 的工程 — 加入spring-boot-starter-we

Spring Boot入門在Eclipse中使用Spring boot

新建的專案目錄大概如下 整體目錄結構和Spring專案一樣,只不過Spring boot的配置檔案遷移到了application.yml(或者application.propertis)。專案的入口為BootTestApplication.java的main函式入口。 在maven配置的pom.xml裡

Spring boot入門 環境搭建HelloWorld

說在前面:  最近Spring boot也火了一把,不稍微熟習下Spring boot都不好意思出門了,於是我也試著看下Spring boot的相關配置。概述:  Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及

Spring boot 學習 認識Spring boot

XML 過程 maven 認識 很多 團隊 但是 日誌文件 pivotal 什麽是spring boot Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人

使用Spring框架入門基於XML配置的IOC/DI的使用

測試結果 plugins rac prepare lombok ray instance private mls 一、Spring框架   1、方法一:逐項導入基礎依賴包:     spring-core、spring-beans、spring-context、s

Spring Security教程()初識Spring Security

一、概要 Spring Security,這是一種基於 Spring AOP 和 Servlet 過濾器的安全框架。它提供全面的安全性解決方案,同時在 Web 請求級和方法呼叫級處理身份確認和授權。以下是百科裡對於Spring Security的介紹。 Spring Security是一個能夠為基於Spr

Spring Cloud 入門教程聊聊Spring Cloud

一、 Spring Cloud 是什麼? Spring Cloud 是將分散式系統中一系列基礎框架/工具進行整合的框架。其中包含:服務註冊與發現、服務閘道器、熔斷器、配置中心、訊息中心、服務鏈路追蹤等等。 Spring Cloud 並沒有重複造輪子,Spring Cloud只是依賴於Spring Boo

Spring Boot教程()入門

ava 輸入 圖片 imp 測試 code 輸出 clas web 使用maven構建項目   1. 先在系統中安裝好開發環境,本教程使用Eclipse Photon 和 Java JDK 1.8 進行開發   2. 訪問連接https://start.spring.io/

Spring Boot入門()Spring Boot+IDEA+JDK1.8開發環境和第一個專案搭建,附所需資源連結

前言    博主第一次瞭解Spring Boot 這個框架,之前的時候就一直對這個框架心馳神往,如今剛開始學習這個框架,把學習歷程和過程中遇到的問題和解決方法記錄下來,與大家一起分享! 關於Spring Boot   

spring-boot入門之一——環境搭建

技術分享 aging 一次 span left spa acl 自帶 PE 一、版本準備eclipse: Eclipse Mars.2 (4.5.2)maven: Apache Maven 3.5.3spring boot:

Spring-Boot入門之工程搭建

1.下載springboot工具 https://spring.io/tools3/sts/all 2.進入springboot快速搭建 https://start.spring.io/ 指定Group和Artifact名稱,並選擇本機JDK版本 選擇專案所需依

步步搭建 Spring Boot maven 框架的工程

摘要:讓Spring應用從配置到執行更加快速,演示DIY Spring Boot 框架時,如何配置埠號,如何新增日誌。 Spring Boot 框架幫助開發者更容易地建立基於Spring的應用程式和服務,使得開發者能夠快速地獲得所需要的Spring功能。 提供了非功能性的大型專案類特性,

SpringBoot | 第八章搭建Spring Boot Admin分散式微服務監控中心

(一)、什麼是Spring Boot Admin       Spring Boot Admin 是一個針對spring-boot的actuator介面進行UI美化封裝的監控工具。他可以返回在列表中瀏覽所有被監控spring-boot專案的基本資訊比如

Spring Boot入門 (二) 無xml配置的實現

無xml配置的實現 自Spring3.X 以後 spring 提供了很多的註解來代替XML檔案的配置,最核心的是下面兩個註解。 ::@Configuration:: 標註該類是配置類,類似於我們定義的applicationContext.xml ::@B

Spring Data MongoDB 入門篇(環境搭建、簡單的CRUD操作)

一.簡介      Spring Data  MongoDB 專案提供與MongoDB文件資料庫的整合。Spring Data MongoDB POJO的關鍵功能區域為中心的模型與MongoDB的DBCollection輕鬆地編寫一個儲存庫互動資料訪問。 二.Spring

Spring Boot入門使用ThymeLeaf+表單驗證

Thymeleaf提供了一個用於整合Spring MVC的可選模組,在應用開發中,你可以使用Thymeleaf來完全代替JSP,或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標在於提供一種可被瀏覽器正確顯示的、格式良

深入Spring Boot (十)整合Redis詳解

Spring Boot為Redis的Lettuce和Jedis客戶端庫提供了基本的自動配置,並且可以使用Spring Data Redis完成更多的操作。本篇將介紹如何整合Redis及使用Redis實現簡單的查詢快取,主要包括以下7部分內容: 快取 Redi

Spring Boot(十)Spring Boot中MongoDB的使用

Spring Boot(十一):Spring Boot中MongoDB的使用 mongodb是最早熱門非關係資料庫的之一,使用也比較普遍,一般會用做離線資料分析來使用,放到內網的居多。由於很多公司使用了雲服務,伺服器預設都開放了外網地址,導致前一陣子大批 MongoDB 因配置漏洞被攻擊,資料被刪,引起了人

Spring Boot 2()Spring Boot 2.0新特性

方案 oauth 2.0 hiberna 浪費 快的 ali 升級 log security Spring Boot 2(一):Spring Boot 2.0新特性 Spring Boot依賴於Spring,而Spring Cloud又依賴於Spring Boot,因此Sp