对于spring框架,我想在属性文件中手动重新加载数据。实际上,当我手动运行这个servlet文件时,必须编写将手动重新加载数据的重载servlet。
我已经为messageSource定义了spring配置。
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
p:basename="classpath:/message" />
但是不想在一定时间内自动重载,例如在设置时可以自动重载:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
p:basename="classpath:/message"
p:cacheSeconds="1" />
我之前通过clearCaches()尝试过但没有自动重载。
答案 0 :(得分:1)
现在正在运作。需要将messageSource注入servlet文件并调用clearCache()。它确实清除了以前的属性数据并重新加载了更新的属性文件。
在 ReloadServlet.java 中,
ReloadableResourceBundleMessageSource rs = Global.getBean("messageSource", ReloadableResourceBundleMessageSource.class);
rs.clearCache();
在 Global.java 中,
private static ApplicationContext context;
public static <T> T getBean(String s, Class<T> type) {
return context.getBean(s, type);
}
感谢。
答案 1 :(得分:0)
我不知道,你的意思是手动重装属性文件。 Spring
已经提供加载properties
文件,如下所示。
在spring配置文件中配置properties
文件。例如。 applicationContext.xml
或spring-beans.xml
<util:properties id="MY_CONFIG" location="classpath:MY_CONFIG.properties"/>
在你的sping bean中,注入如下
@Resource(name = "MY_CONFIG")
private Properties properties;
你的servlet调用那个spring bean。
<强>更新强>
如果您想直接从Servlet或其他类加载文件