我有一个托管在Tomcat servlet容器中的Java应用程序,它查询数据库并使用结果创建内存模型(非常大)。创建内存中图形的代码大约需要3分钟才能运行,所以我很想能够在应用程序启动时以及用户可以访问应用程序之前执行此操作。
这样做是否有典型的模式方法?
答案 0 :(得分:4)
建议的方法是实施javax.servlet.ServletContextListener
并在contextInitialized(ServletContextEvent)
内运行代码。
然后将其添加到您的web.xml
<listener>
<listener-class>com.company.LoadEverythingINeedListener</listener-class>
</listener>
这将确保您的用户在您准备好之前不会访问您的应用程序。
答案 1 :(得分:1)
您可以使用servlet中的<load-on-startup>1</load-on-startup>
参数,也可以使用上下文侦听器来执行此操作。