【问题标题】:Cache DB table data on application start在应用程序启动时缓存数据库表数据
【发布时间】:2015-03-20 09:29:16
【问题描述】:
我有一个包含一些元数据的数据库表,这些元数据在版本之间不会改变。我希望能够在应用程序启动时缓存此元数据,以便我可以像使用 ENUM 一样使用它。可能缓存在一个 bean 中。有没有办法在 Java 中做到这一点?我在我的 web 应用程序中使用 spring 框架。我通过搜索找到了 memcached,但我认为这在学习曲线和用于我想要存储的内容方面太重了。我的表很小,有一个对应的 ID 和值,只有 10 条记录。
【问题讨论】:
标签:
java
mysql
database
spring
caching
【解决方案1】:
您的要求甚至不需要任何缓存学习,您可以为此使用 Spring 生命周期方法。如下所示
public class DBCache implements InitializingBean {
private Map dataCache;
public void afterPropertiesSet() {
// perform db hit and populate dataCache; }
}
public Map getCacheData(){//RETURN THE DATA OR WHATEVER FORMAT YOU NEED//}
方法 afterPropertiesSet 被 Spring 框架调用。虽然有时它建议不要实现 InitializingBean ,因为它与 Spring 耦合,然后使用也可以在您希望在应用程序启动时获得回调的方法上选择 @PostConstruct 注解。