java - spring boot应用配置问题

标签 java spring spring-boot

我的应用程序结构如下

----
   | 
   |____SpringBootApplicationA
        |
        |
        |___module-1
        |___module-2

每个模块都有自己的配置,例如,module-1 是与 mysql 对话的库,它有自己的配置(连接字符串、用户名、密码等...)

现在我想在模块 1 中以 Java POJO 的形式表示此配置。 application.yml 和一个读取配置并设置值的 bean。

例如

class Module1Config {

  private String key1;
  private String key2;

  // getters & setters
}

application.yml at module-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 对象从 module1 获得分配的默认值集,然后任何应用程序指定为覆盖

最佳答案

Spring boot默认加载application.yml文件 来自 src/main/resources 您可以在中声明另一个 application.yml 文件 根路径的配置文件夹和配置来自 config 文件夹将覆盖 src/main/resources 中的配置

配置位置以相反的顺序搜索。默认情况下,配置的位置是classpath:/,classpath:/config/,file:./,file:./config/。结果搜索顺序如下:

文件:./config/ 文件:。/ 类路径:/配置/ 类路径:/

官方文档链接:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

我觉得有用

关于java - spring boot应用配置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53233781/

相关文章:

java - spring boot 数据库错误数据源 "org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration”

java - 在 IE 中提交后出现奇怪的行为字符(在 FF 中不会发生)

java - 无法计算表达式方法抛出 'org.hibernate.exception.GenericJDBCException' 异常

javascript - 如何在 Spring Boot + Spring Security 应用程序中配置 CORS?

java - Eureka服务器未注册服务应用

java - 以编程方式批量导入 LDIF

java - 带有换行且居中对齐文本的 JTable 列标题

java - 如何使用存储库接口(interface)在 Spring Data 中通过其嵌套对象的 objectId 查找集合?

JSON 字段无序

java - 如何修复未通过的 Spring Security Authorization header ?