2016-07-07 7 views
0

У меня есть приложение загрузки весны, которое имеет множество свойств, определенных в файле .yml. Я отхожу от наличия свойств в файле, чтобы иметь их в облаке, поэтому для этого я использую функцию key/value в консуле весеннего облака.Правильный способ загрузить значения/свойства из spring cloud consul

Я могу получить значение для данного ключа от консула, но единственный способ, который я видел документирован и только так, как я были в состоянии сделать это, как так:

@Autowired 
private Environment env; 

    @RequestMapping("/test") 
    String home() { 
     return env.getProperty("test.property"); 
    } 

Это нормально и денди, но у меня есть некоторые существующие классы, которые до сих пор, установленные для загрузки свойства по-старому:

@Value("${test.property}") 
String testProperty; 

После добавления зависимости для весны облака консула в мой проект, я получаю новые ошибки сказать, что все эти свойства не могут быть решена. Я предполагаю, что это потому, что весенняя загрузка видит зависимость консула и либо игнорирует файл yml, либо его части.

Есть ли способ загрузить эти свойства из консула без необходимости менять код в классах? Или мне нужно будет изменить эти классы, чтобы следовать примеру, который использует объект env?

Также будет оценено любое дальнейшее понимание того, как консул весеннего облака работает с пружинным ботинком для этой конкретной цели. На нем не так много документации.

+0

Если вы используете его с клиентом Spring Cloud Config, то '@ Value' должен просто работать. –

+0

@ M.Deinum Я не, я использую Spring Cloud Consul – Seephor

+0

Это серверная сторона, консул весеннего облака может легко интегрироваться с конфигурацией весеннего облака, а затем вы получаете из коробки то, что хотите. См. Http://cloud.spring.io/spring-cloud-consul/spring-cloud-consul.html (последний раздел). –

ответ

2

Я смог заставить это работать, но это было немного сложно. Вам нужно добавить зависимость от старшего спутника весеннего облака. У меня была только зависимая конфигурация конфигурации consul.

я должен был добавить свойства консула конфигурации как к моей application.yml и bootstrap.yml свойство в моем boostrap просто установить формат и данные-ключ:

spring: 
    cloud: 
    consul: 
     config: 
     format: YAML 
     data-key: data 

Это говорит о загрузке пружины для загрузки yaml blob, который является значением ключевых данных в моем каталоге конфигурации приложения.

Конфигурация в моем приложении application.yml является значением по умолчанию, которое они предоставляют в примере. Как только я добавил эти конфиги и тег @autoconfiguration в свой основной класс приложений, все приступило к работе.

Смежные вопросы