訂閱
糾錯
加入自媒體

Spring Boot 的核心配置文件及案例分析

一、入門案例分析

1)Spring Boot 的父級依賴 spring-boot-starter-parent 配置之后,當前的項目就是 SpringBoot 項目

2)spring-boot-starter-parent 是一個 Springboot 的父級依賴,開發(fā) SpringBoot 程序都需要繼承該父級項目,它用來提供相關的 Maven 默認依賴,使用它之后,常用的 jar包依賴可以省去 version 配置

3)Spring Boot 提供了哪些默認 jar 包的依賴,可查看該父級依賴的 pom 文件

4)如果不想使用某個默認的依賴版本,可以通過 pom.xml 文件的屬性配置覆蓋各個依賴項,比如覆蓋 Spring 版本

<properties>

<spring-framework.version>5.0.0.RELEASE</ spring-framework.version >

</properties>

5)@SpringBootApplication 注解是 Spring Boot 項目的核心注解,主要作用是開啟Spring 自動配置,如果在 Application 類上去掉該注解,那么不會啟動 SpringBoot程序

6)main 方法是一個標準的 Java 程序的 main 方法,主要作用是作為項目啟動運行的入口

7)@Controller 及 @ResponseBody 依然是我們之前的 Spring MVC,因為 Spring Boot的里面依然是使用我們的 Spring MVC + Spring + MyBatis

二、Spring Boot 的核心配置文件

Spring Boot 的核心配置文件用于配置 Spring Boot 程序,名字必須以 application 開始

1、核心配置格式

1).properties 文件(默認采用該文件)

在 002-springboot-springmvc 項目基礎上,進行修改

項目名稱:003-springboot-port-context-path

通過修改 application.properties 配置文件,在修改默認 tomcat 端口號及項目上下文件根鍵值對的 properties 屬性文件配置方式

配置完畢之后,啟動瀏覽器測試

頁面顯示結果

2).yml 文件

項目名稱:004-springboot-yml,在 003 項目基礎之上

yml 是一種 yaml 格式的配置文件,主要采用一定的空格、換行等格式排版進行配置。

yaml 是一種直觀的能夠被計算機識別的的數(shù)據(jù)序列化格式,容易被人類閱讀,yaml 類似于 xml,但是語法比 xml 簡潔很多,值與前面的冒號配置項必須要有一個空格, yml 后綴也可以使用 yaml 后綴

注意:當兩種格式配置文件同時存在,使用的是.properties 配置文件,為了演示 yml,可以先將其改名,重新運行 Application,查看啟動的端口及上下文根

我們以后在授課的過程中,使用 properties,所以演示完 yml 效果后,將該配置文件改名

2、多環(huán)境配置

在實際開發(fā)的過程中,我們的項目會經(jīng)歷很多的階段(開發(fā)->測試->上線),每個階段的配置也會不同,例如:端口、上下文根、數(shù)據(jù)庫等,那么這個時候為了方便在不同的環(huán)境之間切換,SpringBoot 提供了多環(huán)境配置,具體步驟如下

1)項目名稱:005-springboot-multi-environment

為每個環(huán)境創(chuàng)建一個配置文件,命名必須以 application-環(huán)境標識.properties|yml

application-dev.properties

application-product.properties

application-test.properties

在總配置文件 application.properties 進行環(huán)境的激活

等號右邊的值和配置文件的環(huán)境標識名一致,可以更改總配置文件的配置,重新運行Application,查看啟動的端口及上下文根

2)項目名稱:006-springboot-multi-environment

為每個環(huán)境創(chuàng)建一個配置文件,命名必須以 application-環(huán)境標識.properties|yml

[page][/page]

SpringBoot 總配置文件:application.yml

開發(fā)環(huán)境配置文件:application-dev.yml

測試環(huán)境配置文件:application-test.yml

生產(chǎn)環(huán)境配置文件:application-product.yml

3、Spring Boot 自定義配置

在 SpringBoot 的核心配置文件中,除了使用內(nèi)置的配置項之外,我們還可以在自定義配置,然后采用如下注解去讀取配置的屬性值

1)@Value 注解

A、 項目名稱:007-springboot-custom-configuration用于逐個讀取 application.properties 中的配置

案例演示

? 在核心配置文件 applicatin.properties ,添加兩個自定義配置項 school.name 和website。在 IDEA 中可以看到這兩個屬性不能被 SpringBoot 識別,背景是桔色的

application.yml 格式配置文件

? 在 SpringBootController 中定義屬性,并使用@Value 注解或者自定義配置值,并對其方法進行測試

? 重新運行 Application,在瀏覽器中進行測試

2)@ConfigurationProperties

項目名稱:008-springboot-custom-configuration

將整個文件映射成一個對象,用于自定義配置項比較多的情況

案例演示

? 在 com.a(chǎn)bc.springboot.config 包下創(chuàng)建 ConfigInfo 類,并為該類加上 Component 和ConfigurationProperties 注解,并在 ConfigurationProperties 注解中添加屬性 prefix,作用可以區(qū)分同名配置

application.properties 配置文件

application.yml 配置文件

? 在 SpringBootController 中注入 ConfigInfo 配置類

? 修改 SpringBootController 類中的測試方法

? 重新運行 Application,在瀏覽器中進行測試

3)警告解決

? 在 ConfigInfo 類中使用了 ConfigurationProperties 注解后,IDEA 會出現(xiàn)一個警告,不影響程序的執(zhí)行

? 點擊 open documentnation 跳轉(zhuǎn)到網(wǎng)頁,在網(wǎng)頁中提示需要加一個依賴,我們將這個依賴拷貝,粘貼到 pom.xml 文件中

4)中文亂碼

如果在 SpringBoot 核心配置文件中有中文信息,會出現(xiàn)亂碼:

? 一般在配置文件中,不建議出現(xiàn)中文(注釋除外)

? 如果有,可以先轉(zhuǎn)化為 ASCII 碼

5)友情提示

大家如果是從其它地方拷貝的配置文件,一定要將里面的空格刪干凈

5、Spring Boot 前端使用 JSP

項目名稱:009-springboot-jsp

在 pom.xml 文件中配置以下依賴項

1)在 pom.xml 的 build 標簽中要配置以下信息

SpringBoot 要求 jsp 文件必須編譯到指定的 META-INF/resources 目錄下才能訪問,否則訪問不到。其實官方已經(jīng)更建議使用模板技術(后面會講模板技術)


2)在 application.properties 文件配置 Spring MVC 的視圖展示為jsp,這里相當于 Spring MVC 的配置

集成完畢之后,剩下的步驟和我們使用 Spring MVC 一樣application.yml 格式的配置文件

3)在 com.a(chǎn)bc.springboot.controller 包下創(chuàng)建 JspController 類,并編寫代碼

4)在 src/main 下創(chuàng)建一個 webapp 目錄,然后在該目錄下新建index.jsp 頁面 ,如果在webapp目錄下右鍵,沒有創(chuàng)建jsp的選項,可以在Project Structure中指定webapp為 Web Resource Directory

5)在 jsp 中獲取 Controller 傳遞過來的數(shù)據(jù)

6)重新運行 Application,通過瀏覽器訪問測試

聲明: 本文由入駐維科號的作者撰寫,觀點僅代表作者本人,不代表OFweek立場。如有侵權或其他問題,請聯(lián)系舉報。

發(fā)表評論

0條評論,0人參與

請輸入評論內(nèi)容...

請輸入評論/評論長度6~500個字

您提交的評論過于頻繁,請輸入驗證碼繼續(xù)

暫無評論

暫無評論

    掃碼關注公眾號
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯
    x
    *文字標題:
    *糾錯內(nèi)容:
    聯(lián)系郵箱:
    *驗 證 碼:

    粵公網(wǎng)安備 44030502002758號