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 配置


免責聲明!

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



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