我有一个自定义的EnvironmentPostProcessor,它向环境添加一个属性。为了正确添加此属性,我需要知道一个 url,它取决于我正在使用的配置文件,每个应用程序属性中都存在 url。一切工作正常,直到我添加一个本地模块作为依赖项,该模块使用 spring-cloud-starter-vault-config 。现在,环境没有应用程序属性值,但具有其他模块的值。请参阅下面的视觉表示:
myProcessor
- resources
-- application.properties
-- application-dev.properties
newlyAddedModdule/Dependency
- resources
-- application.properties
如何让项目加载 application.properties 而不是其他模块属性?
P.S:我更喜欢一个解决方案,我自己不读取应用程序属性文件,而是让 ConfigurableEnvironment 为我提供这些文件,就像以前一样。
最佳答案
最好的方法可能是将正确的值放入保险库中。但我想这不是一个选择。
另一种方法是为 myProcessor 的属性赋予更高的优先级。请参阅Spring Externalized Configuration order
我发现的最简单的方法是将新添加的模块属性放入 jar 中,并将 myProcessor-properties 放在类路径上。
关于java - Spring Boot EnvironmentPostProcessor 未加载 application.properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61887442/