有没有办法将属性文件包含在另一个属性文件中?

Posted

技术标签:

【中文标题】有没有办法将属性文件包含在另一个属性文件中?【英文标题】:Is there a way to include properties file in another properties file? 【发布时间】:2017-01-29 16:21:45 【问题描述】:

我想避免在application.properties 文件中包含很多东西,而不是在我看来单独的文件中更好。

application.properties 应该是这样的

@include module1.properties
@include module1.properties
...
###################################
######### Spring Misc #############
###################################

# Direct log to a log file
logging.file=/tmp/kmp-manager.log

#local listening port
server.port=8082

spring.profiles=nr_dev nr_testing production
spring.profiles.active=production

spring.datasource.platform=postgresql

java.security.egd=file:/dev/./urandom

这可能吗? 如果不是,那么避免混乱的明智方法是什么?

【问题讨论】:

看起来像duplicate。不导入而是加载多个文件 - 这能回答您的问题吗? 另外,考虑使用YAML 而不是properties - 这样可以提供更加结构化的文档。 【参考方案1】:

YML文件中可以,配置很简单

示例:

要在application.yml 中包含application-DATABASE.yml 文件的属性,请使用

spring:
  profiles:
    include: DATABASE

[编辑 - 适用于 2.4.0 及更高版本]

spring.profiles.group.prod=DATABASE

application.properties中添加文件名

spring.config.import=classpath:application-DEV.yml,classpath:application-UDEV.yml,classpath:application-PRO.yml,classpath:application-SBA.yml

【讨论】:

这在 Spring Boot 2.4 中似乎是可能的:spring.io/blog/2020/08/14/…【参考方案2】:

Spring Boot Spring Boot 2.4 增加了导入功能

我们现在可以使用spring.config.import=developer.properties 来导入其他文件。查看此blog 帖子了解更多详情

【讨论】:

以上是关于有没有办法将属性文件包含在另一个属性文件中?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将 POM 参数/属性传递给 TestNG XML 文件?

有没有办法在 NAnt 中动态加载属性文件?

有没有办法在另一个具有附加属性的模型中使用 DbSet?

在另一个 .m 文件中使用 classdef 的属性?

读取 JAR 文件外的属性文件

如何访问嵌套 JSP 标记文件中的父属性?