2010-06-16 92 views
4

我在寫一個Java EE應用程序,它通過從文件中讀取來計算很多事情。這個過程需要很長時間,我希望每次部署應用程序時都會自動緩存它。在啓動時初始化Java EE應用程序緩存

所以,我正在考慮製作一個靜態類,並將我的緩存結果存儲在某種靜態哈希表中。

但有關如何自動部署和初始化緩存的任何想法?我是否必須手動訪問該應用程序並初始化緩存,或者有更好的方法嗎?

回答

5

假設您有一個web應用程序,最簡單的方法是使用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> 
+2

非常感謝。完美的作品! – Sunny 2010-06-18 16:51:18

相關問題