2013-05-09 2 views
0

Я хочу изменить значение свойства bean-компонента в контексте приложения, не читая его из файла свойств. Я получу значения свойств, установленные в объекте properties. объект свойств будет передан моему api при вызове интерфейса api.Настройка значения свойства Spring bean в ApplicationContext без использования файла свойств

ответ

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>