我有一个基于Web的Java应用程序,在其中我需要在RAM存储器中存储少量数据以进行某种操作。我也将这些数据存储到数据库中。
现在,当我重新启动应用程序时,我需要再次将这些数据加载到RAM内存中(例如,我在tomcat中运行我的应用程序,因此在重新启动tomcat之后,我需要将数据从数据库加载到ram内存中。)
为此,我有一个功能,但问题是如何检测应用程序启动事件?
我知道Java Spring中有类似的东西,但是在我的应用程序中我没有使用Spring。
任何帮助对我都很好。
让我知道是否需要更多数据。
谢谢。
答案 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()