java web项目启动后执行某个方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java web项目启动后执行某个方法相关的知识,希望对你有一定的参考价值。

我需要在项目完全启动后再执行这个方法,这个方法是socket会阻塞,如何和项目一起启动的话会阻塞项目,导致无法完全启动。所以需要等项目启动完后在执行这个方法!

filter 拦截器是能这么做的,但是打字太费劲了;
和你说个简单的场景,web项目启动后,会跳转一个index.jsp吧,你用ajax 在jsp中调用一下;如果在index.jsp就要使用此方法返回的数据,让项目跳转到index0.jsp ajax跳转到index.jsp 就可以了;
说个思路,此方法也就取个巧
参考技术A 在启动Tomcat的过程中执行相应的方法,然后在执行的过程中使用另一个线程来执行:比如说将要执行的方法所在的类继承HttpServlet并在web.xml中配置,然后在该Servlet的init中去调用想要执行的方法时(假设这个方法名叫start()),启动另一个线程来执行,具体代码如下。
转自:http://blog.csdn.net/kenhins/article/details/50514712

在web项目启动时,使用监听器来执行某个方法

在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件、初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作。

这里写了个简单的实例,用的是监听器机制,创建一个类实现ServletContextListener 接口,实现里面的contextInitialized和contextDestroyed方法。

 1 package com.test.listener;  
 2   
 3 import javax.servlet.ServletContextEvent;  
 4 import javax.servlet.ServletContextListener;  
 5 //创建的类名根据需要定义,但一定要实现ServletContextListener接口  
 6 public class WebContextListener implements ServletContextListener {  
 7   
 8       
 9     @Override  
10     public void contextInitialized(ServletContextEvent arg0) {  12         //这里可以放你要执行的代码或方法     
13     }  
14       
15     @Override  
16     public void contextDestroyed(ServletContextEvent arg0) {  
17         // TODO Auto-generated method stub  
18           
19     }  
20   
21       
22 }  

其中contextInitialized方法是项目在启动初始化的时候就会执行的方法,contextDestroyed是在消亡的时候执行的方法,这里我们需要把随项目启动时执行的代码放在contextInitialized方法中。

然后在web.xml中为这个监听器添加配置:

1 <listener>  
2   <listener-class> com.test. listener.WebContextListener</listener-class>  
3 </listener>  

其中listenner-class配置的是上面定义的监听器类路径

这样就就可以了,部署好项目,启动就可以执行contextInitialized里面的代码了。

 

以上是关于java web项目启动后执行某个方法的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot启动后执行某个方法

SpringBoot 项目启动后执行代码

在web项目启动时,使用监听器来执行某个方法

当spring 容器初始化完成后执行某个方法

当spring 容器初始化完成后执行某个方法

ruoyi项目可以启动,打包后jar启动不了