Springboot+ApplicationRunner实现web容器启动时启动第三方应用

原spring 项目中使用web.xml 项目中使用ContextLoaderListener 启动器 实现ServletContextListener接口启动timer 定时任务或第三方应用程序

 <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <listener>
    <listener-class>com.DataServer</listener-class>
  </listener>

使用但是使用过Springboot+ServletContextListener中可能会出现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) 配置启动顺序,数字越小启动优先级越高。

猜你喜欢

转载自blog.csdn.net/wuyufeng891021/article/details/84613404