java - Spring Boot EnvironmentPostProcessor 未加载 application.properties

标签 java spring spring-boot kotlin

我有一个自定义的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/

相关文章:

spring - grails spring bean 定义

java - 升级到 Spring Boot 2 后,ObjectMapper 无法在没有默认构造函数的情况下反序列化

java - 如何在 Scala 中期望 String* 的函数中使用 Array[String]

java - 如何在zk中选择日历中的星期

java - 在 CircleCi 中从 Spring Boot 访问 PostgreSQL 9.6

azure - 如何使用 spring-data-cosmosdb 设置 CosmosDB 中整个数据库的吞吐量(RU)?

spring-boot - 如何在Spring Boot中编写以下 Elasticsearch 通配符查询?

java - 如何从 Swing 组件中检索唯一的字符串?

java - Hibernate:使用别名获取列

java - 如何在 Java EE 中注入(inject)外部定义的类