启动期间在Java Web应用程序中执行一段代码

时间:2018-06-29 12:48:44

标签: java tomcat web-applications

我有一个基于Web的Java应用程序,在其中我需要在RAM存储器中存储少量数据以进行某种操作。我也将这些数据存储到数据库中。

现在,当我重新启动应用程序时,我需要再次将这些数据加载到RAM内存中(例如,我在tomcat中运行我的应用程序,因此在重新启动tomcat之后,我需要将数据从数据库加载到ram内存中。)

为此,我有一个功能,但问题是如何检测应用程序启动事件?

我知道Java Spring中有类似的东西,但是在我的应用程序中我没有使用Spring。

任何帮助对我都很好。

让我知道是否需要更多数据。

谢谢。

2 个答案:

答案 0 :(得分:2)

  

如何检测应用程序启动事件?

声明并配置实现ServletContextListener的类。

ServletContextListener documentation的状态:

  

用于接收有关ServletContext的通知事件的接口   生命周期的变化。

     

为了接收这些通知事件,执行   类必须在Web的部署描述符中声明   应用程序,使用WebListener注释或通过以下方式之一注册   在ServletContext上定义的addListener方法。

您可以在void contextInitialized(ServletContextEvent sce)方法中执行这些语句

  

接收有关Web应用程序初始化过程的通知   正在开始。

要使用,应注册监听器。
在Servlet 3.0之前:在web.xml中声明它。
从Servlet 3.0开始:以前的方法或更好的方法是使用@WebListener直接注释该类。

答案 1 :(得分:1)

看看httpservlet init(ServletConfig)方法。

初始化servlet时,

init(...)被调用一次。

https://docs.oracle.com/javaee/6/api/javax/servlet/GenericServlet.html#init()

https://docstore.mik.ua/orelly/java-ent/servlet/ch03_03.htm