spring-boot - 具有单个属性文件的 Spring 配置文件属性继承
问题描述
我有一个application.yml
包含多个弹簧轮廓的文件。我想将属性从一个配置文件继承到另一个配置文件。
在此示例中,我想将 prod 配置文件的属性继承到 prod1 中,而无需在 prod1 配置文件中再次写入公共属性。
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
application:
name: TestApp
URL: "https://localhost:8181/Services/IDEA-Client-Partners"
---
spring:
profiles: dev
---
spring:
profiles: prod
URL: https://www.ideaedu.org/Services/IDEA-Client-Partners
---
spring:
profiles: prod1
解决方案
如果激活了多个配置文件,则属性确实已经继承。例如,如果您激活prod
,并且prod1
所有 default < prod < prod1 属性将默认激活,被 prod 中的任何内容覆盖,并且 prod 被 prod1 中的任何内容覆盖。
鉴于你的例子,
server:
port: 8080
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
application:
name: TestApp
URL: "https://localhost:8181/Services/IDEA-Client-Partners"
---
spring:
profiles: dev
---
spring:
profiles: prod
URL: https://www.ideaedu.org/Services/IDEA-Client-Partners
prodProperty: test
---
spring:
profiles: prod1
URL: https://localhost/
并激活所有配置文件,-Dspring.profiles.active=prod,prod1
将设置以下属性,
- 端口 = 8080
- 潜水员类名= com.mysql.cj.jdbc.Driver
- 名称 = TestApp
- prodProperty = 测试
- URL = https://localhost/
在属性冲突的情况下,例如URL
在本例中,最后读取的属性获胜,即,在这种情况下,读取的最后一个属性将在' ' 的定义中处于活动状态prod
并且处于活动状态。prod1
prod1
推荐阅读
- c - Unable to concatenate tokens in CPP
- c# - BackgroundWorker not passing FileNotFoundException to RunWorkerCompleted
- macos - VS Code Will Not Save Changes - Mac
- asp.net - 在asp.net核心中将一组对象从视图发布到控制器
- c# - 我在 ASP.NET MVC 应用程序的控制器上收到服务器错误
- javascript - 我怎么知道下载文件的总数类型=“文件”倍数?
- sql - 如何在 SQL Server 中创建数据透视表
- elasticsearch - 如果同义词是多词,Elasticsearch 同义词标记过滤器如何工作?
- reactjs - 测试时如何在我的组件之外设置 Formik isSubmitting?
- python - 如何使用 conda 查看已在开发人员模式下安装的所有软件包?