Чтение значений из консула во время начальной загрузки
У меня есть вопрос, есть ли способ получить определенные значения и внедрить их в 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 шага:
- добавить pom зависимость:
spring-cloud-starter-consul-config
- включить консул конфиг:
spring.cloud.consul.config.enabled=true
- добавить некоторые конфиги в consul kv в определенную папку, например, ключ:
config/testConsulApp/server.port
, значение: 8081
а затем запустите пример веб-приложения, оно будет прослушивать 8081.
подробнее на весеннем облаке консул док.