springboot使用ServletContextListener启动报错

ServletContextListener是servlet容器中的一个API接口, 它用来监听ServletContext的生命周期,也就是相当于用来监听Web应用的生命周期。

使用配置如下

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;


@WebListener
@Component
@Slf4j
public class DateServer implements ServletContextListener{

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        // TODO Auto-generated method stub
        log.info("liting: contextDestroyed");
    }
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        // TODO Auto-generated method stub
        log.info("liting: contextInitialized");
    }

}

需要在启动类中增加@ServletComponentScan 注解

@ServletComponentScan
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(AnranpslsApplication.class, args);
    }
}

但是使用中可能会出现idea内置tomcat启动成功,配置外部tomcat启动时报错,或打包war部署到外部tomcat后启动成功,访问不了程序。项目中我改用了实现ApplicationRunner 接口实现 tomcat启动时应用程序。

代码如下:

@Slf4j
@Component
@Order(value = 1)
public class MyServletContextListener implements ApplicationRunner {

    @Resource
    public FaceRecognitionService faceRecognitionService;
    //实际需要上的静态属性

    public static FaceRecognitionService sFaceRecognitionService;

    @PostConstruct
    public void init() {
        sFaceRecognitionService = this.faceRecognitionService;
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("应用程序启动");
        
    }

}

通过实现run方法实现要操作的方法。

说明@Order(value=1) 配置启动顺序,数字越小启动优先级越高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值