Java Web应用启动过程中执行代码的方法

摘要

  应用启动前或启动后执行代码:SpringApplication,WebApplicationInitializer,ApplicationRunner,CommandLineRunner、ServletContextListener,web.xml

1、Springboot

@Slf4j
@Component
public class TestRunner implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) throws Exception {
        log.info("[boot] 程序启动到最后会执行此代码,可以注入 Bean");
    }
}

或 2

@Slf4j
@Component
public class TestRunner implements CommandLineRunner {

    @Override
    public void run(String... args) throws Exception {
        log.info("[boot] 程序启动到最后会执行此代码,可以注入 Bean");
    }
}

或 3文章源自新逸网络-https://www.xinac.net/9257.html

// 写在 main 方法中 run() 的前后
public static void main(String[] args) {
    // do something
    SpringApplication.run(Application.class, args);
    // do something
}

2、Springmvc

// 此代码将在tomcat等容器初始化完成后,启动web应用时最先执行
public class TestInit implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        // 此方法等同于web.xml配置文件,即xml文件的代码化实现
        // do something
    }
}

文章源自新逸网络-https://www.xinac.net/9257.html

@Component
public class TestRunner {

    @PostConstruct
    public void runner() {
        // 此注解有很多的使用限制,不一定保证会执行,具体可查看API说明
    }
}

3、Struts Spring or other

// 此代码将在上下文初始化和销毁过程中执行,不在最前和最后,相对靠后
public class InstallListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        // todo
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        // todo
    }
}

上述代码还需配合配置项使用文章源自新逸网络-https://www.xinac.net/9257.html

<!-- web.xml -->
<listener>
	<listener-class>com.example.demo.InstallListener</listener-class>
</listener>

文章源自新逸网络-https://www.xinac.net/9257.html

<!-- web.xml -->
<servlet>
	<servlet-name>ConnectorServlet</servlet-name>
	<servlet-class>net.fckeditor.connector.ConnectorServlet</servlet-class>
	<load-on-startup>1</load-on-startup>
</servlet>
文章源自新逸网络-https://www.xinac.net/9257.html文章源自新逸网络-https://www.xinac.net/9257.html
weinxin
新逸IT技术
扫一扫关注微信公众号
Admin
  • 版权声明 本文源自 https://blog.xinac.cn 整理 发表于 2022-04-13
  • 转载请注明:https://www.xinac.net/9257.html
评论  0  访客  0
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定