【发布时间】:2018-11-09 21:59:05
【问题描述】:
我的应用程序具有以下结构
----
|
|____SpringBootApplicationA
|
|
|___module-1
|___module-2
每个模块都有自己的配置,例如module-1是与mysql对话的库,它有自己的配置(连接字符串、用户名、密码等...)
现在我想在module-1中以Java POJO的形式来表示这个配置。 application.yml 和一个读取配置并设置值的 bean。
例如
class Module1Config {
private String key1;
private String key2;
// getters & setters
}
application.yml 在模块 1
key1: val1
key2: val2
现在作为 module-1 的消费者,SpringBootApplicationA 将收到 module-1 的配置,这是 module-1 设置的默认配置。
在消费者方面,它将具有这样的应用程序配置
someKey1: someVal1
someKey2: someVal2
module-1:
key1: overrideVal1
当模块 1 的 bean 发生初始化时,我希望这些值被视为
key1: overrideVal1
key2: val2
如何配置 spring boot 以尊重默认值并覆盖它们?
编辑
class AppConfig {
private String key1;
private int key2;
private Module1Config conf;
// getters + setters
}
这是我的示例应用程序配置,您可以看到它有一些特定于应用程序配置和它从其他模块中利用的其他配置。
我希望 conf 对象从模块 1 获得分配的默认值集,然后是任何应用程序指定为覆盖的值
【问题讨论】:
标签: java spring spring-boot