在我的 Spring Boot 项目中,我将 env 属性(application-dev.prop)文件直接放在资源文件夹下,该属性文件定义了一些连接属性。在 user.properties 文件中定义的具有不同值的相同连接属性(需要注入到特定的配置类中)放置在 resources/config 下。我已经用 @PropertySource(value = "classpath:/config/用户属性”)。但是,这个配置类从 env 属性文件中获取连接值,而不是从 user.prop 文件中获取连接值,即使该类使用属性源 user.property 类路径进行了注释。如果 env 属性文件中未定义特定字段,则此配置类仅接受 user.property 值。简而言之,它仅在 env.property 文件中未定义任何字段/属性时才检查 user.property 文件。但我希望这个配置类始终指向 user.property 文件。我已经检查了用于扫描属性文件的 Spring Boot 优先级,但无法解决。谁能帮我解决这个问题。
问问题
221 次
1 回答
0
根据文档,
In cases where a given property key exists in more than one .properties file,
the last @PropertySource annotation processed will 'win' and override.
如果适合您的用例,我认为更好的方法是使用配置文件。此处的链接解释了如何巧妙地添加配置文件。你可以检查一下。
如果您认为添加配置文件不是正确的选择,我会建议另一种方法,您可以将它们作为环境变量传递下来。这使您可以根据需要灵活地更改它,您还可以为环境变量提供默认值。
于 2020-04-09T17:59:37.630 回答