Я хочу изменить значение свойства bean-компонента в контексте приложения, не читая его из файла свойств. Я получу значения свойств, установленные в объекте properties. объект свойств будет передан моему api при вызове интерфейса api.Настройка значения свойства Spring bean в ApplicationContext без использования файла свойств
0
A
ответ
1
Вы можете сделать это с помощью пользовательских ApplicationContextInitializer
и с помощью PropertySource
называется PropertiesPropertySource
Создание пользовательского ApplicationContextInitializer таким образом:
public class PropertyRegisterAppInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext>{
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
MutablePropertySources sources = applicationContext.getEnvironment().getPropertySources();
Properties props = new Properties();
props.put("testkey", "testval");
sources.addFirst(new PropertiesPropertySource("propertiesSource", props));
}
}
Регистрация эту ApplicationContextInitializer
через web.xml
файл:
<context-param>
<param-name>contextInitializerClasses</param-name>
<param-value>props.PropertyRegisterAppInitializer</param-value>
</context-param>