Чтение значений из консула во время начальной загрузки

У меня есть вопрос, есть ли способ получить определенные значения и внедрить их в bootstrap.yml, когда приложение запускается.

У меня есть файл конфигурации, как это:

spring:
  application:
    name: myApp

  cloud:
    consul:
      enabled: true
      host: localhost
      port: 8500
      config:
        enabled: true

  datasource:
    url: jdbc:oracle:thin:@localhost:1111:XXXX
    username: ${nameOfVariable1}
    password: ${nameOfVariable1}
    driver-class-name: oracle.jdbc.OracleDriver

Например, мне нужно настроить встроенный порт tomcat или учетные данные БД, я не хочу помещать его жестко в файл свойств.yml, вместо этого я хочу поместить имя переменной в.yml, чтобы Spring перешел и принес значение из Consul, Является ли это возможным?

1 ответ

Ты можешь использовать Spring Cloud Consul Config проект, который помогает загрузить конфигурацию в среду Spring во время специальной фазы начальной загрузки.

3 шага:

  1. добавить pom зависимость: spring-cloud-starter-consul-config
  2. включить консул конфиг: spring.cloud.consul.config.enabled=true
  3. добавить некоторые конфиги в consul kv в определенную папку, например, ключ: config/testConsulApp/server.port, значение: 8081

а затем запустите пример веб-приложения, оно будет прослушивать 8081.

подробнее на весеннем облаке консул док.

и демо-код здесь

Другие вопросы по тегам