如何在更新DB记录时更新弹簧中的预加载数据

时间:2015-06-03 11:05:26

标签: mysql spring hibernate

我为我的应用程序使用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对象?

0 个答案:

没有答案