如何在部署Java Web应用程序时缓存数据库数据

时间:2015-04-07 21:18:59

标签: java web-applications

所以我的问题是我想在部署应用程序时缓存一些表数据。在这种情况下,我想在服务器(可能是jboss或tomcat服务器)上部署应用程序时,从一个表的数据中创建一个哈希映射。

我知道如何使用hibernate,JDBC等,并且正常获取数据没有问题,但是在构建/部署应用程序时如何让我的数据检索代码自行运行?

这可能是一件非常简单的事情,但我不确定我怎么也找不到任何好的指南。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以从servlet构建中为此目的调用它。然后,在web.xml中,使用runOnStartup设置servlet,然后设置为0.这使得Web服务器在加载应用程序时启动servlet。

答案 1 :(得分:0)

  

在上面提到的3个中,我对Spring很熟悉。关于如何用弹簧实现这一目标的任何建议?

Spring beans默认为singleton范围,并在ApplicationContext初始化时生成(在部署时发生)。你可以让Spring在用@PostConstruct创建bean或实现InitializingBean时调用方法:

@Component
public class CategoriesCache {
    @Inject
    CategoryRepositoy repo;

    private List<Category> cachedCategories;

    @PostConstruct
    void init() {
        cachedCategories = repo.findAll();
    }
}

如果您不想使用依赖注入容器,则可以使用ServletContextListener通知部署,并执行必要的初始化。