Spring boot 在springboot 2.4的应用程序yml中导入几个属性文件后如何重写属性
我在yml中有两个属性文件Spring boot 在springboot 2.4的应用程序yml中导入几个属性文件后如何重写属性,spring-boot,Spring Boot,我在yml中有两个属性文件 application-common.yml,包含以下内容 web客户端: 最大连接数:500 等待: 时间:1秒 application.yml,包含以下内容 信息: 应用程序: 名称:“@project.name@” 版本:“@project.version@” 春天: application.name:“@project.name@” --- 春天: 配置: 激活。on-profile:本地 导入:类路径:application-common.yml 等待:
web客户端:
最大连接数:500
等待:
时间:1秒
信息:
应用程序:
名称:“@project.name@”
版本:“@project.version@”
春天:
application.name:“@project.name@”
---
春天:
配置:
激活。on-profile:本地
导入:类路径:application-common.yml
等待:
时间:10秒
---
春天:
配置:
激活.on-profile:prod
导入:类路径:application-common.yml
等待:
时间:5秒
我希望在将
本地
配置文件的应用程序common.yml
导入到10s
后,我能够覆盖等待
属性,并将产品
配置文件的5s
属性。但是,当我使用local
配置文件运行应用程序时,wait-for
属性被解析为1s
,而不是10s
我不太确定这个响应,因为我还没有测试它,但我认为标准布局应该如下所示:
我不太确定这个响应,因为我还没有测试它,但我认为标准布局应该如下所示:application.yml
您可以通过在另一个yml或属性文件中重新定义属性来覆盖该属性。但请确保,无论最后读取哪个属性文件,这些属性都将在应用程序中有效/被考虑application.yml
e、 g.如果公共yml文件最后读取,则“等待”将为1s;如果应用程序yml文件最后读取,则“等待”将为10s。您可以通过在另一个yml或属性文件中重新定义来覆盖该属性。但请确保,无论最后读取哪个属性文件,这些属性都将在应用程序中有效/被考虑
e、 g.如果您的公共yml文件最后读取,那么“等待”将是1s;如果应用程序yml文件最后读取,那么“等待”将是10s。如果我有一个定义所有公共属性的单一位置,那么这将起作用。但假设我有一个名为
的配置文件,它需要从prod east
和application.yml
导入属性并覆盖属性。我认为没有“层次配置文件”的概念。对我来说,听起来有点过分了。扩展了application-prod.yml
的文件application.yml
对于配置文件来说还不够吗?对我来说,这听起来比一些奇特的多级概要文件继承更安全/更清晰。如果你有这么多的配置文件,也许你应该看看其他的东西。如果我有一个单一的地方,所有的公共属性都是定义的,那就可以了。但假设我有一个名为application prod east.yml
的配置文件,它需要从prod east
和application.yml
导入属性并覆盖属性。我认为没有“层次配置文件”的概念。对我来说,听起来有点过分了。扩展了application-prod.yml
的文件application.yml
对于配置文件来说还不够吗?对我来说,这听起来比一些奇特的多级概要文件继承更安全/更清晰。如果你有这么多的个人资料,也许你应该看看其他的。是的,这应该行得通。我试图避免仅为覆盖属性创建新文件。我希望我能做内联。但看起来并没有其他方法了。你们可以做的另一件事是,若你们并没有在任何道具文件中定义“wait for”属性,那个么你们可以在应用程序中使用/注入它时给出默认值(但这是在代码级别上的更改,并不总是推荐这样)。是的,那个应该可以。我试图避免仅为覆盖属性创建新文件。我希望我能做内联。但看起来没有其他方法了。您可以做的另一件事是,如果您没有在任何道具文件中定义“wait for”属性,那么您可以在应用程序中使用/注入该属性时提供默认值(但这是在代码级别更改,不建议总是这样)。application prod east.yml