我正在编写一个Java EE应用程序,它通过读取文件来计算很多东西。这个过程需要花费很多时间,我希望每次部署应用程序时都会自动缓存它。
所以,我正在考虑制作一个静态类,并将我的缓存结果存储在某种静态的hashmap中。
但是有关如何自动部署和初始化缓存的任何想法?我是否必须手动访问该应用程序并初始化缓存,还是有更好的出路?
答案 0 :(得分:5)
假设您有一个webapp,最简单的方法是使用ServletContextListener
在启动时初始化应用程序。
http://java.sun.com/javaee/6/docs/api/javax/servlet/ServletContextListener.html
public class MyListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
// initialize cache here
}
public void contextDestroyed(ServletContextEvent sce) {
// shut down logic?
}
}
然后在你的web.xml中:
<listener>
<listener-class>com.x.MyListener</listener-class>
</listener>