国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

spring boot學習(6)— 配置信息及其讀取優先級

stormzhang / 3132人閱讀

摘要:優先級如下使用文件使用文件,會根據以下目錄去尋找,添加到中,優先級依次遞增。目錄下目錄工程根目錄工程跟目錄下的目錄加載順序從優先級高的先加載。屬性值怎么取優先級高的會覆蓋優先級低的。但是在同等目錄下,優先級高于文件的配置信息。

1. properties 信息從哪里取

在不同的環境,我們需要使用不同的配置,Spring boot 已經提供了相關功能,可以是 properties 文件, yaml 文件 或是命令行參數。優先級如下

Devtools global settings properties on your home directory (~/.spring-boot-devtools.properties when devtools is active).

@TestPropertySource annotations on your tests.

@SpringBootTest#properties annotation attribute on your tests.

Command line arguments.

java -jar app.jar --name="Spring"

Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property).

environment vaiable:SPRING_APPLICATION_JSON="{"acme":{"name":"test"}}" java -jar myapp.jar

command line:

java -Dspring.application.json="{"name":"test"}" -jar myapp.jar

java -jar myapp.jar --spring.application.json="{"name":"test"}"

ServletConfig init parameters.

ServletContext init parameters.

JNDI attributes from java:comp/env.

Java System properties (System.getProperties()).

OS environment variables.

A RandomValuePropertySource that has properties only in random.*.

my.secret=${random.value}
my.number=${random.int}
my.bignumber=${random.long}
my.uuid=${random.uuid}
my.number.less.than.ten=${random.int(10)}
my.number.in.range=${random.int[1024,65536]}

Profile-specific application properties outside of your packaged jar (application-{profile}.properties and YAML variants).

Profile-specific application properties packaged inside your jar (application-{profile}.properties and YAML variants).

Application properties outside of your packaged jar (application.properties and YAML variants).

Application properties packaged inside your jar (application.properties and YAML variants).

@PropertySource annotations on your @Configuration classes.

Default properties (specified by setting SpringApplication.setDefaultProperties).

2. 使用 application.properties 文件

使用 properties 文件,spring boot 會根據以下目錄去尋找,添加到 Spring Environment 中,優先級依次遞增。

classpath:/: resources 目錄

classpath:/config/: resourcesconfig 目錄

file:./:工程根目錄

file:./config/: 工程跟目錄下的 config 目錄

2.1 加載順序:

從優先級高的先加載。

file:./config/

file:./

classpath:/config/

classpath:/

2019-03-27 22:38:24.848 DEBUG 39802 --- [           main] o.s.boot.SpringApplication               : Loading source class com.example.exitcode.DemoApplication
2019-03-27 22:38:24.915 DEBUG 39802 --- [           main] o.s.b.c.c.ConfigFileApplicationListener  : Loaded config file "file:./config/application.properties" (file:./config/application.properties)
2019-03-27 22:38:24.915 DEBUG 39802 --- [           main] o.s.b.c.c.ConfigFileApplicationListener  : Loaded config file "file:./application.properties" (file:./application.properties)
2019-03-27 22:38:24.915 DEBUG 39802 --- [           main] o.s.b.c.c.ConfigFileApplicationListener  : Loaded config file "jar:file:xxxxx-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/config/application.properties" (classpath:/config/application.properties)
2019-03-27 22:38:24.915 DEBUG 39802 --- [           main] o.s.b.c.c.ConfigFileApplicationListener  : Loaded config file "jar:file:xxxxx-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/application.properties" (classpath:/application.properties)
2.2 屬性值怎么取

優先級高的會覆蓋優先級低的。

./config/application.properties

testconfig.first=./config/
#testconfig.second=./config/
#testconfig.third=./config/
#testconfig.fourth=./config/

./application.properties

testconfig.first=./
testconfig.second=./
#testconfig.third=./
#testconfig.fourth=./

classpath:/config/application.properties

testconfig.first=classpath/config/
testconfig.second=classpath/config/
testconfig.third=classpath/config/
#testconfig.fourth=classpath/config/

classpath:/application.properties

testconfig.first=classpath
testconfig.second=classpath
testconfig.third=classpath
testconfig.fourth=classpath

輸出如下:

2019-03-27 23:29:12.434  INFO 1335 --- [           main] com.example.properties.DemoApplication   : No active profile set, falling back to default profiles: default
first: ./config/
second: ./
third: classpath/config/
fourth: classpath
2019-03-27 23:29:13.052  INFO 1335 --- [           main] com.example.properties.DemoApplication   : Started DemoApplication in 16.565 seconds (JVM running for 23.467)
2.3 多環境配置文件

加一個文件: classpath:/application-product.properties

testconfig.first=product-classpath
testconfig.second=product-classpath

通過 spring.profiles.active 來指定環境所對應的 properties 文件:
運行 java -jar build/libs/properties-0.0.1-SNAPSHOT.jar --spring.profiles.active=product, 輸出如下:

2019-03-28 20:34:44.726  INFO 25859 --- [           main] com.example.properties.DemoApplication   : The following profiles are active: product
first: product-classpath
second: product-classpath
third: classpath/config/
fourth: classpath
fifth: ./config/
sixth: ./config/
seventh: ./config/
eightth: ./config/
2.3 使用 yaml 文件來代替 properties 文件。

也可以使用 yaml 格式的文件。但是在同等目錄下,properties 優先級高于 yaml 文件的配置信息。

新增文件 ./config/application.yml

testconfig:
  frist: ./config/yml
  second: ./config/yml

命令 java -jar build/libs/properties-0.0.1-SNAPSHOT.jar 輸出為:

first: ./config/
second: ./config/yml
third: classpath/config/
fourth: classpath
fifth: ./config/
sixth: ./config/
seventh: ./config/
eightth: ./config/
2.5 屬性文件中可以使用變量已經聲明過的變量值:
app.name=MyApp
app.description=${app.name} is a Spring Boot application

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73999.html

相關文章

  • 吐血整理 20 道 Spring Boot 面試題,我經常拿來面試別人!

    摘要:你如何理解中的可以理解為啟動器,它包含了一系列可以集成到應用里面的依賴包,你可以一站式集成及其他技術,而不需要到處找示例代碼和依賴包。如你想使用訪問數據庫,只要加入啟動器依賴就能使用了。 面試了一些人,簡歷上都說自己熟悉 Spring Boot, 或者說正在學習 Spring Boot,一問他們時,都只停留在簡單的使用階段,很多東西都不清楚,也讓我對面試者大失所望。 下面,我給大家總結...

    haoguo 評論0 收藏0
  • 最渣的 Spring Boot 文章

    摘要:如刪除臨時文件,清除緩存信息,讀取配置文件信息,數據庫連接等。提供的接口也可以滿足該業務場景。不同點中方法的參數為,而接口中方法的參數為數組。 spring-boot-starter-parent Maven的用戶可以通過繼承spring-boot-starter-parent項目來獲得一些合理的默認配置。這個parent提供了以下特性: 默認使用Java 8 使用UTF-8編碼 一...

    yanest 評論0 收藏0
  • Spring Boot(二)Spring Boot配置

    摘要:不同的環境之間的配置存在覆蓋關系。提供了一種統一的方式來管理應用的配置,允許開發人員使用屬性文件文件環境變量和命令行參數來定義優先級不同的配置值。比如命令行參數的優先級被設置為最高。 一.關于Spring Boot的配置 Spring Boot 對于開發人員最大的好處在于可以對 Spring 應用進行自動配置。Spring Boot 會根據應用中聲明的第三方依賴來自動配置 Spring...

    nicercode 評論0 收藏0
  • Spring Boot 配置文件中的花樣,看這一篇足矣!

    摘要:的默認配置文件位置為。比如,我們需要自定義模塊的服務端口號,可以在中添加來指定服務端口為,也可以通過來指定應用名該名字在應用中會被注冊為服務名。同時,配置內容都對開發人員可見,本身這也是一種安全隱患。 在快速入門一節中,我們輕松的實現了一個簡單的RESTful API應用,體驗了一下Spring Boot給我們帶來的諸多優點,我們用非常少的代碼量就成功的實現了一個Web應用,這是傳統的...

    pingan8787 評論0 收藏0
  • spring cloud config將配置存儲在數據庫中

    摘要:工程描述端口,從數據庫中讀取配置端口,從讀取配置搭建工程創建工程,在工程的文件引入的起步依賴,的連接器,的起步依賴,代碼如下在工程的配置文件下做以下的配置其中,為讀取的配置文件名,從數據庫中讀取,必須為。 轉載請標明出處: https://blog.csdn.net/forezp/...本文出自方志朋的博客 Spring Cloud Config Server最常見是將配置文件放在本...

    RobinQu 評論0 收藏0

發表評論

0條評論

stormzhang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<