【问题标题】: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 注解。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-05
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多