web项目war包执行初始化工作

小凯   |     |   问题   |   1分钟   |   204浏览  

今天部署的项目中,新加了初始化工作。本来打算的是通过在Application.class中加载完Spring IoC工厂初始化完成后再立刻执行新加的初始化工作。本地没测出问题,但是在部署war包时却发现新加的初始化工作没有执行。

排除了代码问题后研究发现,web项目需要在web容器初始化后执行,刚才的Application.class文件并不是在web项目中直接调用,需要重写web中的部分接口才能扩展自己的功能。

以下为解决代码:

@Component
public class MyApplicationRunner implements ApplicationRunner, CommandLineRunner {

    @Override
    public void run(ApplicationArguments args) throws Exception {
        SystemService.syncPermissionSystem();
        System.out.println("启动完毕! 从ApplicationRunner运行。");
    }

    @Override
    public void run(String... args) throws Exception {
        SystemService.syncPermissionSystem();
        System.out.println("启动完毕! 从CommandLineRunner运行。");
    }
}
如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧☕
微信
支付宝
  条评论