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;

public class InitListener implements ServletContextListener  {

@Override

public void contextInitialized(ServletContextEvent paramServletContextEvent) {

//实现方法

}

@Override

public void contextDestroyed(ServletContextEvent paramServletContextEvent) {

}

}

2.spring初始化bean时

1、在需要进行操作的bean的xml定义中加上init-method属性,指定下启动时运行哪个方法;

2、实现InitializingBean接口,Spring在启动时会自动调用这个接口中的初始化方法

public class SysInitBean implements InitializingBean,ServletContextAware{
          public void afterPropertiesSet() throws Exception {
      //初始化代码
       }
}<span style="background-color: rgb(226, 226, 226); "> </span>

实现InitializingBean接口就可以获取spring的所有配置信息。

实现ServletContextAware,可以获得servletcontext

3.servlet的init()方法

自动执行servlet

写一个servlet,在init()方法中写好想要执行的程序,

同时,在web.xml配置文件中指出

<servlet>

<servlet-name>XXXX</servlet-name>

<servlet-class>XXXX</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

load-on-startup的值必须为整数,当load-on-startup值为负整数或者未指定时,容器在该servlet被调用时加载

当其值为0和正整数时,容器启动时加载,值越小,优先级越高

web项目启动时,执行某个方法,布布扣,bubuko.com

时间: 2024-10-09 12:41:34

web项目启动时,执行某个方法的相关文章

spring在web容器启动时执行初始化方法

需求:在tomcat启动时开启一个定时任务. 想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也就可以随容器一起启动. 问题:上面的方法很好,但是由于定时任务需要去操作数据库,而项目采用了spring的依赖注入来管理对象,而servlet并不受Spring的管理.若此时在servlet中注入Spring管理的对象,则会报错:javax.naming.NameNotFoundException: Name com.test.InitS

Java项目启动时执行指定方法的几种方式

1.使用 @PostConstruct,作用于方法上面. @Componentpublic class PostConstruct { @PostConstruct public void test() { System.out.println("PostConstruct:开始运行..."); }} 2.使用 ApplicationRunner. @Componentpublic class Start implements CommandLineRunner { @Override

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

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

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

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

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

tomcat启动时自动执行,以下两种方法的执行时长,会计算在tomcat的启动时长里. 1.ServletContextListener web.xml配置<listener> <listener-class>com.yuan.framework.GreyClientInitListener</listener-class> </listener> 1 public class GreyClientInitListener implements Servle

【Spring框架】 ? 项目启动时执行特定处理及ApplicationListener源码分析

1.背景 在一些业务场景中,在容器启动完成后,需要处理一些诸如:kafka业务注册,数据处理,初始化缓存等的操作. 本文重点介绍如何在服务启动中,或启动完成时执行相关处理. 2.针对上述场景,有如下实现方法 A:实现基于javaweb的ServletContextListener接口,重写contextInitialized()接口   B:实现基于javaweb的javax.servlet包下的Filter接口,重写init(FilterConfig filterConfig)接口   C:继

基于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

项目启动时,执行任务,使用org.springframework.context.SmartLifecycle

在我们自定义的实现类继承SmartLifecycle 接口.当Spring容器加载所有bean并完成初始化之后,会接着回调实现该接口的类中对应的方法(start()方法). import org.springframework.context.SmartLifecycle; import org.springframework.stereotype.Service; import com.polymer.app.service.TestService; @Service(value = "tes