apache 配置文件內使用 8080 端口_【SpringBoot 框架】- SpringBoot 配置文件

一、SpringBoot配置文件類型

SpringBoot是基于約定的,所以很多配置都有默認值,但如果想使用自己的配置替換默認配置的話 ,就可以自己編寫配置文件進行相應配置,起步依賴spring-boot-starter-parent 中,有配置文件的引入,如下:

<resource><filtering>true</filtering><directory>${basedir}/src/main/resources</directory><includes><include>**/application*.yml</include><include>**/application*.yaml</include><include>**/application*.properties</include></includes>
</resource>

可以看到,${basedir}/src/main/resources 表示資源的加載文件,資源文件包括下面三種格式的,也就是說,咱們在配置SpringBoot資源文件的時候都是以 application*.yml、application*.yaml、application*.properties文件格式,.yml 和 .yaml 文件相同,而且在配置的時候一般都以 application 命名,所以SpringBoot配置文件可以歸為以下兩種:

application.properties

application.yml(application.yaml)

1. application.properties 配置文件

咱們可以創建 application.properties 配置文件去覆蓋 SpringBoot 的默認配置,可以在resources 文件夾下創建 application.properties 文件,這里就以手動配置 Tomcat 端口去覆蓋SpringBoot 默認配置為例,我們知道 Tomcat 默認打開端口是8080,咱們可以通過 application.properties 配置文件去修改這個默認配置:

server.port=8888

添加配置之后,運行項目

eae1d33f0b18916cf81ac407f313df36.png

properties 文件是以鍵值對的形式編寫,可以看到,通過修改application.properties 配置文件,已經將 Tomcat 端口改為 8888,覆蓋了之前的配置,由于 properties 文件在以往用的也比較多,較為常見,這里就不做過多講述,主要還是對 yml 配置文件進行學習。

2. application.yml(application.yaml) 配置文件

YML文件格式是YAML (YAML Aint Markup Language)編寫的文件格式,YAML是一種直觀的能夠被電腦識別的的數據數據序列化格式,并且容易被人類閱讀,容易和腳本語言交互的,可以被支持YAML庫的不同的編程語言程序導入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP等。YML文件是以數據為核心的,比傳統的xml方式更加簡潔。YML文件的擴展名可以使用.yml或者.yaml。

【1】yml配置文件語法

yml 的配置可以分為下面幾種,我們先在 resources 文件夾下面創建 application.yml 配置文件

配置普通數據

配置對象數據

配置Map數據

配置數組數據

配置普通數據:

語法: key: value

eg:

name: onestar

注意:value前面有一個空格

配置對象數據:

  • 語法1:
    • key:
      key1: value1
      key2: value2
  • 語法2:
    • key: {key1: value1,key2: value2}
  • eg:
person:name: oneStarage: 18addr: yichun#或者
person: {name: oneStar,age: 18,addr: yihcun}

注意:key1前面的空格個數不限定,在yml語法中,相同縮進代表同一個級別

配置Map數據:

  • 配置Map數據和配置對象數據相同
  • eg:
map:key1: value1key2: value2

配置數組數據:

  • 語法1
    • key:
      - value1
      - value2
  • 語法2
    • key: [value1,value2]
  • eg:
city:- beijing- tianjin- shanghai- chongqing#或者
city: [beijing,tianjin,shanghai,chongqing]#集合中的元素是對象形式
student:- name: oneStarage: 18score: 100- name: twoStarage: 28score: 88- name: threeStarage: 38score: 90

注意:value1與之間的 - 之間存在一個空格

二、配置文件與配置類的屬性映射

配置文件中的配置,不管是 properties 文件還是 yml 文件,有一些配置 SpringBoot 會自動去識別,比如 server.port=8888 配置,但有一些我們自定義的配置,SpringBoot 并不能自動識別,怎樣才能讓 SpringBoot 認識自己配置的信息呢,這里就有兩種方法:

使用注解 @Value 映射

使用注解 @ConfigurationProperties 映射

1、使用注解 @Value 映射

我們可以通過@Value注解將配置文件中的值映射到一個Spring管理的Bean的字段上,這里以 yml 文件進行說明

application.yml 配置如下:

person:name: oneStarage: 18

實體Bean代碼如下

@Controller
public class QuickController {@Value("${person.name}")private String name;@Value("${person.age}")private int age;@RequestMapping("/quick")@ResponseBodypublic String quick(){return "name="+name+",age="+age;}
}

運行后,瀏覽器訪問地址:

http://localhost:8080/quick?localhost:8080

結果如下:

naem=oneStar,age=18

2、使用注解 @ConfigurationProperties 映射

使用 Value 映射能夠精確的匹配到某一屬性,但如果有很多屬性,就帶來了不便,因此,還可以使用 @ConfigurationProperties 映射,通過注解@ConfigurationProperties(prefix="配置文件中的key的前綴")可以將配置文件中的配置自動與實體進行映射

application.yml 配置如下:

person:name: oneStarage: 19

實體Bean代碼如下:

@Controller
@ConfigurationProperties(prefix = "person")
public class QuickController {private String name;private int age;public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}@RequestMapping("/quick")@ResponseBodypublic String quick(){return "name="+name+",age="+age;}
}

運行后,瀏覽器訪問地址:

http://localhost:8080/quick?localhost:8080

結果如下:

name=oneStar,age=19

注意:使用@ConfigurationProperties方式可以進行配置文件與實體字段的自動映射,但需要字段必須提供set方法才可以,而使用@Value注解修飾的字段不需要提供set方法.

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272116.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272116.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272116.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux中while循環的用法筆記

Shell中可以采用while循環來實現需要進行循環的操作。 語法結構如下&#xff1a; while exp do command done 執行過程&#xff1a;while將測試exp的返回值&#xff0c;如果返回值為true則執行循環體的命令&#xff0c;返回值為false則不執行循環。循環完成后會進入下一次循環之…

IOS9.0 導航欄狀態欄

狀態欄高度20px 豎屏是導航欄高度44px 橫屏時導航欄高度32px 獲取當前屏幕狀態&#xff1a;UIApplication.sharedApplication().statusBarOrientation轉載于:https://www.cnblogs.com/iOSboyYang/p/5328886.html

libcurl庫的安裝和使用

libcurl簡介: libcurl是一個跨平臺的網絡協議庫&#xff0c;支持http, https, ftp, gopher, telnet, dict, file, 和ldap 協議。libcurl同樣支持HTTPS證書授權&#xff0c;HTTP POST, HTTP PUT, FTP 上傳, HTTP基本表單上傳&#xff0c;代理&#xff0c;cookies,和用戶認證。li…

android 微信縮小通話界面_安卓如何做出微信那樣的界面仿微信“我”的界面2/5...

本系列目標通過安卓編程仿寫微信“我”的界面,讓大家也能做出類似微信界面.效果圖如下:本文目標做出支付部分(其他部分在后續文章中逐步分享).效果圖如下:實現方案通過截圖工具或者下載一張微信支付照片,放到工程的src/main/res/drawable目錄下,命名為pay.png;同樣獲取一張向右…

Shell腳本中函數的定義和調用筆記

Shell腳本函數的作用主要是把一些可以通用的功能封裝起來、避免腳本中出現大量重復的腳本代碼&#xff0c;同時可以大大增強腳本的可讀性、和可維護性。Shell函數定義的語法格式&#xff1a;function FUNCTION_NAME(){command1command2command3}也可以省略function 關鍵字FUNCT…

opensll、libcurl庫安裝的使用,樹莓派CSI攝像頭的配置,樹莓派調用智能API平臺實現人臉識別、樹莓派配置中文環境

接著上一節人工智能翔云平臺介紹&#xff1a; 人工智能OCR識別&#xff1a; OCR 是英文Optical Character Recognition的縮寫&#xff0c;意思是光學字符識別&#xff0c;也可簡單地稱為文字識別&#xff0c;是文字自動輸入的一種方法。它通過 掃描 和攝像等光學輸入方式獲取紙…

apache 設置禁止訪問某些文件或目錄

【apache配置禁止訪問】1. 禁止訪問某些文件/目錄增加Files選項來控制&#xff0c;比如要不允許訪問 .inc 擴展名的文件&#xff0c;保護php類庫&#xff1a;<Files ~ "\.inc$">Order allow,denyDeny from all</Files>禁止訪問某些指定的目錄&#xff1a…

Shell腳本中函數返回值的用法筆記

函數的返回值又可以稱為函數的退出狀態&#xff0c;實際上可以理解為一種通信方式。Shell腳本中函數可以使用返回值的方式把調用的結果信息反饋給調用者。便于調用者可以根據反饋的結果做相應處理。說明&#xff1a;函數的返回值主要使用 return 關鍵字來處理。這和很多編程語言…

python 怎么取對數_概率矩陣分解(PMF)及MovieLens上的Python代碼

首先對Probabilistic Matrix Factorization這篇論文的核心公式進行講解和推導&#xff1b;然后用Python代碼在Movielens數據集上進行測試實驗。一、 背景知識文中作者提到&#xff0c;傳統的協同過濾算法有兩個不足&#xff1a;1).不能很好地處理規模非常大的數據&#xff1b;2…

JAVA SE、EE、ME,JRE、JDK,基本數據類型,訪問修飾符、函數、封裝的概念、UML類圖、構造方法、this關鍵字、static關鍵字、方法重載、方法重寫、包(packahe)

運行第一個JAVA程序&#xff1a; 這里使用的開發環境是eclipse&#xff0c;新建一個java工程&#xff0c;然后可以看到src這個是存放java代碼的地方&#xff0c;然后在src文件右擊新建一個class&#xff08;類&#xff09;&#xff0c;然后可以看到下圖&#xff0c;同樣和C語言…

unity中如何解決鏡頭穿透模型?

設置相機的Near clip plane,調小一點,但是不要給負數就行。 轉載于:https://www.cnblogs.com/ZeroMurder/p/5331174.html

Shell腳本中函數位置參數的用法筆記

位置參數主要是用于調用函數的時候有時候需要傳遞參數&#xff0c;有很大的比例都是需要調用函數的時候動態傳遞參數&#xff0c;從而實現相應的功能。比如我想要計算兩個數的和&#xff0c;可以通過函數是實現&#xff0c;需要定義兩個參數作為計算的值。這樣的計算兩個數的函…

生鮮配送小程序源碼_生鮮社區團購配送系統小程序源碼搭建平臺模式

生鮮配送系統開發&#xff0c;找【金生157威6875店2419同號】生鮮配送模式開發&#xff0c;生鮮配送軟件開發&#xff0c;生鮮配送APP開發&#xff0c;生鮮配送平臺開發平臺&#xff0c;生鮮配送系統源碼開發平臺&#xff0c;生鮮配送系統平臺&#xff0c;生鮮配送系統定制開發…

軟件開發的早期為何要進行可行性研究?該從哪幾個方面研究目標系統的可行性?...

因為并非任何問題都有簡單明顯的解決辦法&#xff0c;很多問題不可能在預定的系統規模或者時間期限內解決。如果問題沒有可行的解決方案&#xff0c;那么花費在這工程上的任何時間人力經費等資源都是浪費。。 一般來說&#xff0c;至少應該從如下3個方面研究其可行性&#xff1…

繼承的概念和實現 、 super關鍵字 、 Object常見方法、抽象類、接口、模板方法模式、成員內部類、匿名內部類

這篇博客將會涉及到&#xff1a; 繼承的概念和實現super關鍵字方法重寫—OverrideObject常見方法 繼承的概念&#xff1a; 生活中&#xff0c;繼承的概念隨處可見&#xff0c;繼承需要符合的關系&#xff1a;is-a&#xff1b;父類更通用、子類更特殊更具體。就比如說&#x…

盤點關于程序員的10個有趣的段子

&#xff08;1&#xff09;程序員的讀書歷程&#xff1a;x 語言入門 —> x 語言應用實踐 —> x 語言高階編程 —> x 語言的科學與藝術 —> 編程之美 —> 編程之道 —> 編程之禪—> 頸椎病康復指南。&#xff08;2&#xff09;程序員最討厭的四件事&#x…