概述
关键接口(扩展点)
1、SpringApplicationRunListener(springboot应用启动监听接口)
解释:
- 刚执行run方法时
- 环境建立好时
- 上下文建立好时
- 上下文载入配置时
- 上下文刷新完成后,running方法执行前
- 上面几步全部完成后
- 启动失败后
springboot在spring.factories文件中使用的实现类时EventPublishingRunListener
在此实现类中,实现上面的接口后用于发布各种事件,如:
- ApplicationStartingEvent
- ApplicationEnvironmentPreparedEvent
- ApplicationContextInitializedEvent
- ApplicationPreparedEvent
- ApplicationStartedEvent
- ApplicationReadyEvent
- ApplicationFailedEvent
2、ApplicationListener
和上面类似。但是这个接口是spring框架的东西,用于ConfigurableApplicationContext上下文事件的处理。
https://blog.csdn.net/sumengnan/article/details/113634063
借助SpringFactoriesLoader机制,在SpringBoot的项目自定义的META-INF/spring.factories文件中配置如下:
3、ApplicationContextInitializer(应用上下文初始化器)
这个接口也是spring框架的东西。
在ConfigurableApplicationContext类型(或子类型)的ApplicationContext的refresh之前,对ConfiurableApplicationContext的实例(AnnotationConfigServletWebServerApplicationContext)做进一步的设置和处理。
源码如下:
spring.factories文件中配置的其他的应用上下文初始化器如下:
4、CommandLineRunner或ApplicationRunner
在springboot启动完成后调用。我们可以执行一些内容,例如:读取配置文件、数据库连接等
源码如下:
可以实现Ordered
接口调整执行的顺序。
说明:CommandLineRunner或ApplicationRunner接口唯一不同的是,参数的类型不同
CommandLineRunner是ApplicationArguments类型的参数。ApplicationRunner是String数组。
5、ServletContextInitialzer(servlet上下文初始化器)
用于初始化ServletContext。跟我们servlet有关系的,例如过滤器、servlet、session、Listen等都可以操作
实现类如下:
当你是servlet(web环境)时,tomcat启动时这些实现类的onStartup方法
会被ServletWebServerApplicationContext调用
应用:
著名的DispatchServlet类就是通过此接口注入到Servlet中去的
最后
以上就是默默芝麻为你收集整理的springboot扩展点关键接口(扩展点)的全部内容,希望文章能够帮你解决springboot扩展点关键接口(扩展点)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复