Spring Boot -从2个YML中获取不同的属性

h5qlskok  于 2023-11-17  发布在  Spring
关注(0)|答案(2)|浏览(128)

我有2个YML文件,一个是所有应用程序的共同点,另一个是特定的应用程序。
application.yml
ui-service.yml

in application.yml
spring:
  profiles: DEV
  jmx:
    enabled: false
  datasource:
    url:...urlA
    driver-class-name:...
    username: ...
    password: ...
  jpa:...
...

in ui-service.yml
spring:
  profiles: DEV
  jmx:
    enabled: false
  jpa:..
  datasource:
    url: urlB
    driver-class-name:
    username: //
    password: ..
..

字符串
有两个独立的yml的目的是,一些应用程序可以使用application.yml中的属性,但一些应用程序需要使用不同的属性。当我们在ui-service.yml中有spring:....时,这是否会替换application.yml中的spring:... properties的整个部分?还是只有两个yml中的属性会被替换?例如,如果我删除了profiles:从ui-service.yml得到DEV,它会从application.yml得到它,但从ui-service.yml得到它吗?
谢谢你,谢谢

dauxcl2d

dauxcl2d1#

首先你要拿三个application.yml文件:

  1. yml(在这个yml文件中,您必须说明哪个yml文件使用了application-development.yml或application-production.yml)
  2. application-development.yml(特定配置)
  3. application-production.yml(特定配置)
    例如:
    application-development.yml:
spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    url: "jdbc:mysql://localhost:3306/developmentdb"
    username: development
    password: ***********

字符串
application-production.yml:

spring:
      datasource:
        driverClassName: com.mysql.cj.jdbc.Driver
        url: "jdbc:mysql://localhost:3306/productiondb"
        username: production
        password: ***********


如果你想用上面两个yml文件中的任何一个运行你的代码,你必须在下面显示的main application.yml文件中提到,

  • 案例1:* 如果我们要开发yml:code会是这样的
spring:
  profiles:
    active: development

  • 案例2:* 如果我们想要生产yml:code会是这样的
spring:
  profiles:
    active: production

u5rb5r59

u5rb5r592#

我们可以通过使用现有的“application.yml”文件导入"自定义“yaml文件来添加任何其他yaml文件。

spring:
  config:
    import: classpath:custom.yml

字符串

相关问题