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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

以上是关于web项目启动时,自动执行代码的主要内容,如果未能解决你的问题,请参考以下文章

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

十个html5代码片段,超实用,一定要收藏

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

SpringBoot启动时实现自动执行代码的几种方式讲解

Spring Boot 启动时自动执行代码的几种方式。。

SpringBoot启动时实现自动执行代码的几种方式讲解