2014-11-03 2 views
2

У меня есть веб-приложение весной интеграции, которая импортирует кучу свойств файла следующим образом:освежающие свойства пружины загрузки

<context:property-placeholder location="classpath*:*.properties" /> 

Теперь я преобразуя его в приложение весной загрузки и я импортировать свойства при помощи @PropertySource в классе конфигурации. Я также смотрю на конфигурационный сервер весеннего облака для будущего государственного проекта. Таким образом, мой вопрос заключается в том, что все компоненты, которые необходимо обновить, когда изменения файла свойств нуждаются в @RefreshScope, но в этом xml-объекте нет эквивалентного атрибута, о котором я знаю. Я думал, что я могу использовать scope = «refresh», приложение выдает ошибку, говоря, что «refresh» не является допустимой областью. Итак, как мне управлять обновлением xml-определенных bean-компонентов при изменении файла свойств.

Я думаю, что могу попытаться захватить событие, а затем сделать context.refresh(); но является ли их лучшим способом сделать это, которое уже встроено в весну?

ответ

1

Чтобы зарегистрировать пользовательский номер Scope, вам необходимо объявить определение компонента. Spring Cloud Config делает это для вас, если вы используете @EnableAutoConfiguration. Если вы этого не сделаете, вам нужно создать его вручную (XML или XML). Например.

@Bean 
public static RefreshScope refreshScope() { 
    return new RefreshScope(); 
} 

(ссылка: https://github.com/spring-cloud/spring-cloud-config/blob/1.0.0.M2/spring-cloud-config-client/src/main/java/org/springframework/cloud/autoconfigure/RefreshAutoConfiguration.java#L63)

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