[英]how can I access system properties using spring boot and Liquibase changeset yaml file
使用 Liquibase 管理數據庫模式更改的 Spring Boot Java 應用程序以指定其運行環境的參數(例如 dev、int)啟動。
有相應的屬性文件(例如 dev.properties、int.properties)為相應的環境定義屬性。
所以在 dev.properties 中有例如
url.info=http://dev.app.info
在 tst.properties 中有
url.info=http://tst.app.info
應用程序從與傳入參數對應的文件中讀取屬性。
當應用程序在每個環境中部署和啟動時,此機制工作正常。 使用相應屬性的情況很多。
但是,它不適用於包含以下插入語句的 Liquibase yaml 變更集
- insert:
tableName: result
columns:
- column:
name: id
value: a88b6708-5c9f-40c4-a3ca-41e7a6b57fc8
- column:
name: infoUrl
value: ${url.info}
我在 yaml 文件中嘗試過雙引號和單引號,即 "${url.info}" 和 '${url.info}' 但數據庫總是以字符串 ${url.info} 結尾
我必須對 yaml 文件中的屬性使用另一種表示法嗎? 或者不能像使用 xml 文件那樣在 liquibase yaml 文件中引用屬性嗎?
當您使用 Spring Boot 時,您可以使用它的application.properties
文件來定義更改日志參數。
名稱以liquibase.parameters.
可以在更新日志中引用。 例如,屬性liquibase.parameters.url.info
可以在您的更改日志(YAML 或 XML)中引用為${url.info}
。
要為開發、QA、生產等使用不同的配置文件,您可以使用配置文件和配置文件特定的配置文件。 例如, application-dev.properties
文件只會在dev
配置文件處於活動狀態時加載。
感謝以上回答中的任何人。 只是為了更清楚: application.yaml
中的完整參數名稱應如下所示:
spring:
liquibase:
parameters:
paramName: paramValue
然后在我的情況下,您可以在 liquibase 變更集中將其稱為${paramName}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.