是否有可能创建一些持有数据库数据的bean,并且在更新数据库时,必要的bean(而不是整个上下文!)会自动更新?
背景是我最近将旧的Web应用程序迁移到Spring Framework和Hibernate。在迁移之前,更新数据库表时,会更新预定义的单例集。我还没有在Spring找到一个很好的简单解决方案。
/ Bagerth
上下文:
<beans:bean id="systems" class="." factory-method="createInstance">
<beans:constructor-arg ref="customers"/>
</beans:bean>
豆:
public class Systems {
public static ArrayList<System> createInstance(ArrayList<Customer> customers) {
ArrayList<System> systems = new ArrayList<System>();
// code to populate systems ...
return systems;
}
}
答案 0 :(得分:1)
乍一看,可能会使用这种方法:
请注意,重载方法是预先定义的方法,可以对其单例进行重载工作。
@Component
public class MyReloader {
@Autowired
AService aService;
@Autowired
BService bService;
@Scheduled(fixedRate = 2 * 1000)
public void reload() {
aService.reload();
bService.reload();
}
}
另一种方法(异步),您实现ApplicationListener并触发自定义事件,迫使单个数据库重新加载。