0
我想在我的應用程序上下文中更改我的bean屬性的值,而無需讀取屬性文件。我將獲取屬性對象中設置的屬性值。屬性對象將在調用api接口時傳遞給我的api。在不使用屬性文件的情況下在ApplicationContext中設置Spring bean屬性值
我想在我的應用程序上下文中更改我的bean屬性的值,而無需讀取屬性文件。我將獲取屬性對象中設置的屬性值。屬性對象將在調用api接口時傳遞給我的api。在不使用屬性文件的情況下在ApplicationContext中設置Spring bean屬性值
你可以做到這一點通過自定義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>