【发布时间】:2020-05-19 09:15:15
【问题描述】:
我有一个自定义 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 像以前一样为我提供这些的解决方案。
【问题讨论】:
-
我怀疑您的环境后处理器正在 Spring Cloud 的引导上下文中运行。然后它将在主应用程序上下文中再次运行。您可能只能忽略引导上下文中的调用。我相信您可以通过包含名为
bootstrap的属性源的环境来识别该调用。 -
没错,我有一个引导映射,但我没有我需要的属性。在引导程序中移动它们不是一种选择,因为我们正在讨论不同的模块
标签: java spring spring-boot kotlin