Давайте представим, что у нас есть такой компонент в Spring:
@Component
public class MyComponent {
@Value("${someProperty}")
private String text;
}
Если мы определим заполнитель свойства:
<context:property-placeholder location="classpath:myProps.properties"/>
И myPropos.properties содержит значение для someProperty, значение будет введено в поле text при инициализации контекста. Это довольно просто и легко.
Но предположим, что у меня есть служба, которая позволяет пользователю изменять значение someProperty:
public void changeProp(String name, String newValue);
Есть ли шанс, что я могу повторно ввести новое значение в текстовое поле. Я имею в виду, что это должно быть довольно прямолинейно. В основном это не что иное, как инъекция после инициализации. Я не могу представить, что у Spring нет поддержки этого? Могу ли я запустить какое-то событие или что-то в этом роде?
Я мог бы сделать это самостоятельно в принципе, но я брожу, может быть, что-то там уже есть? Если нет, то кто-нибудь знает, какой класс Spring на самом деле обрабатывает инъекции? Я мог бы, вероятно, повторно использовать код, который выполняет это самостоятельно, если решения не существует.