簡體   English   中英

版本控制中的 Spring 屬性

[英]Spring Properties in Version Control

我創建了以下所有已簽入 git 的屬性文件:

   **application.properties**  
    spring.application.name=my-service  
    spring.cloud.config.fail-fast=true    
    spring.cloud.config.uri=${CONFIG_URI:http://localhost:8888}
    spring.cloud.loadbalancer.ribbon.enabled=false

   **application-dev.properties**  
    spring.cloud.config.enabled=false  
    eureka.client.enabled=false  
    spring.application.name=my-service  
    spring.datasource.url=jdbc:mysql://${DB_URL:http://localhost:3306/db_example}
    spring.datasource.username=dev
    spring.datasource.password=local

在生產中,所有配置都從配置服務器中檢索。

關於此設置的問題:

  1. 開發人員 B 開始處理這個項目並克隆它。 不幸的是,他的本地數據庫與另一個用戶位於另一個端口上。 他要怎么改? 使用指定的環境變量?
  2. 開發人員 B 的過濾器存在問題,並希望在 DEBUG 上設置 spring 安全跟蹤。 再次,他如何修改它而不污染git存儲庫?

我看到的選項:

  1. 環境變量
  2. git 會忽略每個開發人員可以在本地設置的 -local.properties 文件。 在那里我可以設置跟蹤級別等。

我錯過了什么? 我想要一個隨時可用的開發人員配置文件,但當然每個開發人員的機器都需要進行調整。

您可以定義用於構建 spring 的配置文件,這些配置文件將傳遞到項目構建時間。 因此,盡可能多地定義您喜歡的配置文件屬性文件:

application-prod.properties
application-user1.properties
application-user2.properties
application-user3.properties

您可以通過在項目配置中傳遞 VM-Options 來加載您的屬性

-Dspring.profiles.active=user2

請注意,您可以將所有配置文件使用的通用屬性定義為:

application.properties

並將application.properties的默認配置文件設置為:

spring.profiles.active=prod

每個用戶都可能基於其適當的數據庫方案。

spring.datasource.url=jdbc:myql://host:port/database_${user.lowername}


spring.datasource.username=database_${user.lowername}
spring.datasource.password=database_${user.lowername}

$user 是存儲在操作系統本身中的環境變量

我在我的公司看到了幾種不同的方式:

  1. 像您在示例中那樣的環境變量
  2. JVM 選項,如項目運行配置中的-DuserDatasourceUrl=jdbc:mysql:http://localhost:3306/db_example 這仍然需要開發人員提供他們的數據庫配置,但是在 README.md 中有一個很好的“如何在本地運行”部分,它可能是您的另一個選擇。

Spring Boot 的外部化配置文檔對我們理解我們的選項和 PropertySource 順序非常有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM