web项目启动时,自动执行代码

tomcat启动时自动执行,以下两种方法的执行时长,会计算在tomcat的启动时长里。

1.ServletContextListener

web.xml配置<listener>  <listener-class>com.yuan.framework.GreyClientInitListener</listener-class>
</listener>
 1 public class GreyClientInitListener implements ServletContextListener {
 2   private static final Logger LOGGER = LoggerFactory.getLogger(GreyClientInitListener.class);
 3   public GreyClientInitListener() {}
 4   public void contextDestroyed(ServletContextEvent arg0) {}
 5   public void contextInitialized(ServletContextEvent arg0) {
 6     try {
 7       // 需要实现的功能
 8     } catch (Exception e) {
 9       LOGGER.error("GreyClientInitListener error", e);
10     }
11   }
12 }

2.spring ApplicationListener

 1 @Service
 2 public class StartGateServiceData implements ApplicationListener<ContextRefreshedEvent> {
 3   private static final Log LOGGER = LogFactory.getLog(StartGateServiceData.class);
 4   @Override
 5   public void onApplicationEvent(ContextRefreshedEvent event) {
 6     try {
 7       // 在web项目中(spring mvc),系统会存在两个容器,一个是root application context
 8       // ,另一个就是我们自己的 projectName-servlet context(作为root application context的子容器)。
 9       // 这种情况下,就会造成onApplicationEvent方法被执行两次。为了避免这个问题,我们可以只在root
10       // application context初始化完成后调用逻辑代码,其他的容器的初始化完成,则不做任何处理。
11       if (event.getApplicationContext().getParent() == null) {
12         // 需要实现的功能
13       }
14     } catch (Exception e) {
15       LOGGER.error("StartGateServiceData", e);
16     }
17   }
18 }
时间: 2024-10-04 16:04:18

web项目启动时,自动执行代码的相关文章

web项目启动时,执行某个方法

1.监听(Listener) web文件添加 <listener> <listener-class>cn.ro.common.InitListener</listener-class> </listener> 添加InitListener类,如下 package cn.ro.common; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener

在web项目启动时,执行某个方法

在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件.初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作. 在工作中遇到了项目初始数据需要跟其他项目同步的问题,也就是说在项目部署后,启动的时候就要同步另外一个项目的数据,这里写了个简单的实例,用的是监听器机制,创建一个类实现ServletContextListener 接口,实现里面的contextInitialized和contextDestroyed方法. pac

java web项目启动时自动加载自定义properties文件

首先创建一个类 public class ContextInitListener implements ServletContextListener 使得该类成为一个监听器.用于监听整个容器生命周期的,主要是初始化和销毁的. 类创建后要在web.xml配置文件中增加一个简单的监听器配置,即刚才我们定义的类. Xml代码 <listener> <!-- lang: xml --> <description>ServletContextListener</descri

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

在web项目中有很多时候需要在项目启动时就执行一些方法,而且只需要执行一次,比如:加载解析自定义的配置文件.初始化数据库信息等等,在项目启动时就直接执行一些方法,可以减少很多繁琐的操作. 这里写了个简单的实例,用的是监听器机制,创建一个类实现ServletContextListener 接口,实现里面的contextInitialized和contextDestroyed方法. 1 package com.test.listener; 2 3 import javax.servlet.Servl

spring mvc web应用启动时就执行特定处理(线程启动)

package com.sdt.platform.index.controller; import java.net.URL; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.annotation.Resource; import org.springframework.beans.BeansException; import org.sprin

web服务启动spring自动执行ApplicationListener的用法

我们知道,一般来说一个项目启动时需要加载或者执行一些特殊的任务来初始化系统,通常的做法就是用servlet去初始化,但是servlet在使用spring bean时不能直接注入,还需要在web.xml配置,比较麻烦.今天介绍一下使用spring启动初始化的方法.其实很简单,只需两步就可以了. 实现ApplicationListener接口: public class Init implements ApplicationListener<ContextRefreshedEvent>{ @Ove

tomcat启动时自动运行代码

原文链接:http://jingpin.jikexueyuan.com/article/49660.html 作者: 一直向北 发布时间:2015-07-13 11:12:13 方法1:tomcat 自动执行servlet 写一个servlet,在init()方法中写好想要执行的程序,程序如下: eclipse新建一个web\Dynamic Web Project , name = myweb1 , 把tomcat中的 servlet-api.jar复制到lib中,新建一个类MyServlet.

基于spring的web项目启动时预加载数据到ServletContext

1.要在web启动时预加载数据到ServletContext,实现方法有很多,一种比较简单的方案就是: 1)新建一个bean,定义其初始化方法: <bean id="beanId" init-method="初始化方法" />或者使用@PostConstruct注解到初始化方法上面 2)获取ServletContext实例对象,如何获取呢? 方法1: @Autowired private ServletContext application; 方法2:

web项目启动时配置监听本地目录文件添加, 删除, 修改, 等操作

大致原理:  通过配置监听器在web容器启动或销毁的时候做相应的操作, 系统目录的监听器使用从jdk1.7才有的WatchService 操作步骤: 1> 自定义自己的监听器实现ServletContextListener接口中的两个方法, 一个未初始化Init方法, 一个是销毁方法Destoryed, 由于WatchService为阻塞型方法, 所以需要新建线程防止web容器无法启动 1 package com.mtl.fill.listener; 2 3 4 import com.mtl.f