我为我的应用程序使用Spring和Hibernate,并希望在应用程序启动时从DB加载一些配置数据。但问题是,如果更新数据库中的记录,我如何更新预加载的数据(顺便说一句,我使用mysql作为数据库)。
我发现一些解决方案说使用mysql中的触发器,但我不知道触发器是否可以调用某些WebService都发送一些事件来告诉应用程序。
是否还有更多解决方案或好主意?
以下是预加载数据的示例代码:
@Service
public class PreloadService {
@Autowired
private ConfigurationDao configurationDao;
private Map<String, String> preloadConfs = null;
@PostConstruct
public void getConfigurations() {
Map<String, String> results = new HashMap<String, String>();
List<Configuration> confs = configurationDao.findConfigurations(null, null);
for (Configuration c: confs) {
results.put(c.getCode(), c.getDescription());
}
preloadConfs = results;
}
public String getDescription(String code) {
return preloadConfs.get(code);
}
}
和其他类应该使用像这样的类
@Autowired
private PreloadService preloadService;
public void foo() {
preloadService.getDescription("code");
}
所以问题是如果更改配置表,我如何更新preloadConfs对象?