1、SpringApplicationRunListener接口
SpringApplicationRunListener接口用于在Springboot启动初始化的过程中可以通过接口回调来让用户在启动的各个流程中可以加入自己的逻辑。
用来在整个启动流程中接收不同执行点事件通知的监听者,SpringApplicationRunListener接口规定了SpringBoot的生命周期,在各个生命周期广播相应的事件,调用实际的ApplicationListener类。
创建实现类:
public class SeasySpringApplicationRunListener implements SpringApplicationRunListener { private final SpringApplication application; private final String[] args; public SeasySpringApplicationRunListener(SpringApplication application, String[] args){ this.application = application; this.args = args; } @Override public void starting() { System.out.println("starting..."); } @Override public void environmentPrepared(ConfigurableEnvironment environment) { System.out.println("environmentPrepared..."); } @Override public void contextPrepared(ConfigurableApplicationContext context) { System.out.println("contextPrepared..."); } @Override public void contextLoaded(ConfigurableApplicationContext context) { System.out.println("contextLoaded..."); } @Override public void failed(ConfigurableApplicationContext context, Throwable exception) { System.out.println("failed..."); if(exception != null){ exception.printStackTrace(); } } @Override public void started(ConfigurableApplicationContext context) { System.out.println("started..."); } @Override public void running(ConfigurableApplicationContext context) { System.out.println("running..."); } }
在META-INF\spring.fatories文件中添加以下内容:
org.springframework.boot.SpringApplicationRunListener=com.seasy.springboottest.extension.SeasySpringApplicationRunListener
2、ApplicationContextInitializer接口
这是一个在ConfigurableApplicationContext刷新之前初始化ConfigurableApplicationContext的回调接口,对ConfigurableApplicationContext的实例做进一步的设置或者处理。
创建实现类:
public class SeasyApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> { public void initialize(ConfigurableApplicationContext applicationContext) { System.out.println("initialize..."); }; }
使用方式有三种:
1、使用SpringApplication.addInitializers或者SpringApplication.setInitializers SpringApplication springApplication = new SpringApplication(Main.class); springApplication.addInitializers(new SeasyApplicationContextInitializer()); springApplication.run(args); 2、在Application.properties属性文件中添加以下配置: context.initializer.classes=com.seasy.springboottest.extension.SeasyApplicationContextInitializer 3、在META-INF\spring.fatories文件中添加以下内容: org.springframework.context.ApplicationContextInitializer=com.seasy.springboottest.extension.SeasyApplicationContextInitializer
3、ApplicationListener接口
ApplicationListener是上下文监听器,Spring框架对Java中实现的监听者模式的一种框架实现。当需要监听自定义事件时,可以新建一个实现ApplicationListener接口的类,并将该类配置到Spring容器中。
创建实现类:
//@Component("seasyApplicationListener") public class SeasyApplicationListener implements ApplicationListener<ContextRefreshedEvent> { @Override public void onApplicationEvent(ContextRefreshedEvent event) { System.out.println("onApplicationEvent >> " + event.getClass().getName()); } }
使用方式有三种:
1、在META-INF\spring.fatories文件中添加以下内容: org.springframework.context.ApplicationListener=com.seasy.springboottest.extension.SeasyApplicationListener 2、用 @Component 注解类标注该类,由容器自动扫描、加载和实例化 @Component("seasyApplicationListener") 3、使用SpringApplication.addListener或者SpringApplication.setListeners SpringApplication springApplication = new SpringApplication(Main.class); springApplication.addListeners(new SeasyApplicationListener()); springApplication.run(args);
4、CommandLineRunner接口
用于在应用程序初始化之后执行某些逻辑,它在所有Spring Beans都初始化之后执行。如果存在多个CommandLineRunner的实现类,可以使用@Order注解来排序。
创建实现类:
@Component @Order(value=1) public class SeasyCommandLineRunner implements CommandLineRunner { @Override public void run(String... args) throws Exception { //如果该方法内部抛出异常,则导致应用启动失败 System.out.println("SeasyCommandLineRunner.run()..."); } }
5、ApplicationRunner接口
如果需要在SpringBoot启动完成之后实现一些功能,可以通过实现ApplicationRunner接口来完成。如果存在多个实现类,可以使用@Order注解来排序。
ApplicationRunner的实现类:
@Component @Order(value=2) public class SeasyApplicationRunner implements ApplicationRunner { @Override public void run(ApplicationArguments args) throws Exception { System.out.println("SeasyApplicationRunner.run()..."); } }
相关推荐
SpringBoot 扩展点 EnvironmentPostProcessor EnvironmentPostProcessor 是 SpringBoot 中的一个扩展点,用于在应用程序启动时加载配置属性。通过实现 EnvironmentPostProcessor 接口,可以在应用程序中加载自定义...
Springboot启动扩展点超详细教程小结 本文将详细介绍Springboot启动扩展点的超详细教程,通过图文并茂的形式给大家介绍了非常详细的Springboot启动扩展点知识点,对大家的学习或工作具有一定的参考借鉴价值。 ...
4.6 SpringBoot扩展与全面接管 70 4.7 如何修改SpringBoot的默认配置 72 4.8 【实验】CRUD操作 73 4.8.1 默认访问首页 73 4.8.2 登录页面国际化 74 4.8.3 登录 80 4.8.4 拦截器进行登录检查 81 4.8.5 实验要求(没按...
SpringBoot知识点整理思维导图是针对Java开发领域中流行的微服务框架——Spring Boot进行系统性梳理的工具。Spring Boot以其快速启动、简化配置的特点,深受开发者喜爱。在本思维导图中,主要涵盖了以下几个核心知识...
在本项目中,"springboot+netty点对点即时通讯、聊天" 是一个利用Spring Boot和Netty构建的实时通信应用,旨在实现用户之间的高效、低延迟的对话功能。以下将详细介绍该项目所涉及的关键技术和知识点。 1. **Spring...
通过以上知识点,我们可以快速搭建并运行一个完整的SpringBoot应用,实现各种功能,如Web服务、数据库操作、安全控制等,并且易于维护和扩展。SpringBoot以其简洁、高效的特点,已经成为现代Java开发的首选框架之一...
SpringBoot是一款基于Java的轻...通过理解这个启动时序,开发者可以更好地掌控SpringBoot应用的生命周期,优化启动性能,调试问题,以及自定义扩展点。对于大型项目,理解启动流程有助于定位和解决问题,提高开发效率。
- SpringbootdemoApplication.java:这是SpringBoot应用的启动入口,它通常包含了main方法作为程序的入口点,并且使用@SpringBootApplication注解来标识这是一个SpringBoot应用。 - static目录:存放静态资源文件,...
将OPC客户端集成到SpringBoot应用中,可以提供一个高效、易于管理和扩展的数据采集平台。 本示例是一个已经经过实际项目验证的基于SpringBoot的OPC客户端实现,旨在简化OPC通信并整合到微服务架构中。以下是对该...
开发者可以根据项目需求,选择合适的配置和扩展点,充分利用这套集成方案。 总之,SpringBoot整合Dubbo增强版是一个优化过的解决方案,它解决了在SpringBoot中使用Dubbo时可能出现的问题,使得开发过程更加顺畅,...
SpringBoot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程。它内置了Tomcat服务器,可以快速构建可执行的JAR或WAR包。在本项目中,SpringBoot作为后端服务,处理前端请求,并与OneNet云平台...
1. **SpringBoot**:SpringBoot是Spring框架的扩展,它简化了Spring应用程序的初始搭建和配置工作。通过"约定优于配置"的原则,SpringBoot可以快速创建独立运行的应用程序,并内置了Tomcat服务器,使得开发和部署...
将SpringBoot与HBase集成,可以实现高效、可扩展的数据存储和处理解决方案。 知识点1:HBase的特点 HBase是一种基于Hadoop的分布式、可扩展的NoSQL数据库,具有以下特点: * 高性能:HBase可以处理大量的数据读写...
总的来说,"springboot多串口解析"项目涵盖了Java串口通信、SpringBoot集成、数据解析等多个技术点,对于理解和实践Java在物联网或硬件交互场景下的应用具有很高的价值。通过合理的设计和编程,可以构建出高效、稳定...
其次,需要获取BootstrapRegistryInitializer对象,从"META-INF/spring.factories"中读取key为BootstrapRegistryInitializer类型的扩展点,并实例化出对应扩展点对象。BootstrapRegistryInitializer的作用是可以初始...
1. **SpringBoot基础**:SpringBoot是Spring框架的扩展,它预配置了许多常见设置,如嵌入式Web服务器(如Tomcat)、自动配置的Spring beans、健康检查端点等。通过使用SpringBoot,开发者可以快速地启动和运行应用...
总结来说,SpringBoot整合Dubbo涉及的主要知识点有: 1. **SpringBoot的自动配置和起步驱动开发**:理解SpringBoot如何简化应用开发,并学会在项目中利用其特性。 2. **Dubbo的核心概念**:包括服务提供者...
学习SpringBoot+SpringCloud,需要掌握以下知识点: 1. **Spring框架基础**:理解IoC(Inversion of Control)和AOP(Aspect Oriented Programming)的概念。 2. **Maven或Gradle**:了解构建工具的使用,以便管理...
在实际开发中,还需要考虑服务治理、熔断、限流、降级等高级特性,Dubbo提供了丰富的扩展点来支持这些功能。同时,随着SpringCloud的崛起,SpringBoot与Dubbo的整合也有了新的方式,如使用Spring Cloud Gateway作为...