Инициализация кэша приложений Java EE при запуске - PullRequest
4 голосов
/ 16 июня 2010

Я пишу приложение Java EE, которое вычисляет много вещей, читая из файлов.Этот процесс занимает много времени, и я хочу, чтобы он кэшировался автоматически при каждом развертывании приложения.

Итак, я думал о создании статического класса и сохранении результатов в моем кэше в виде статической хэш-карты некоторого вида.

Но есть ли идеи по автоматизации развертывания и инициализации этого кэша?Нужно ли вручную посещать это приложение и инициализировать кэш или есть лучший выход?

1 Ответ

5 голосов
/ 16 июня 2010

Если у вас есть веб-приложение, проще всего использовать 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...