我有过春天春天刷新物业 - 比恩不更新
public class RuntimeEnvironmentPropertiesConfigurerextends PropertyPlaceholderConfigurer
implements InitializingBean, RuntimeEnvironmentInterface
现在查询是在我的Spring bean的DAO注入获取从位于象查询[testSql]服务器application.properties文件属性web服务。
<bean id="dao" name="dao" class="com.dao.DaoImpl">
<property name="ackJdbcTemplate" ref="ackJdbcTemplate" />
<property name="testSql" value="${dao.query.tSql}" />
</bean>
与How can I reload properties file in Spring 4 using annotations?链接的帮助,我能够在运行时重新加载的特性。 通过
@Autowired
public RuntimeEnvironmentInterface propertyLoader;
....
Set s=propertyLoader.getProperties();
Iterator itr=s.iterator();
while(itr.hasNext()){
String tempKey=String.valueOf(itr.next());
logger.info(tempKey +"==="+propertyLoader.getProperty(tempKey));
验证,但问题是我的道Bean不承担更新testSql query.It运行在旧的,直到我重新启动应用程序。
我发现像独立URL映射的方法我写了下面做工作的方法:
Dao.setTestSql(propertyLoader.getProperty("com.dao.query.tSql"));
,谁更新,她在更新的属性后,打的网址。
但是,我必须为所有的豆和注入的财产做。这是非常忙碌的工作。我想念一个属性,我注定要失败。 是否有任何其他方式来自动更新注入的bean?我需要我的更新属性反映而不重新启动。
我试图理解wuenschenswert代码给出但无法。
为什么不在你的DAO中使用propertyLoader? –
@Alexey Soshin谢谢你的建议,但总的应用程序中有超过12个bean,并且有很多属性,所以我正在寻找重新装入所有属性的方法,而不必去每个Spring bean和设置属性。 – juneSakura