spring boot中怎么使用SpringApplication实现事件监听,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
创新互联公司客户idc服务中心,提供成都移动服务器托管、成都服务器、成都主机托管、成都双线服务器等业务的一站式服务。通过各地的服务中心,我们向成都用户提供优质廉价的产品以及开放、透明、稳定、高性价比的服务,资深网络工程师在机房提供7*24小时标准级技术保障。
spring application listener
在 spring 框架中,有多种事件, 这些时间会在不同的运行时刻发布,来通知监听者。本文仅仅介绍 SpringApplicationEvent 的事件的监听。
事件类型
EventType | 发布时间 |
---|---|
ApplicationContextInitializedEvent | 在 SpringApplication正在启动, ApplicationContext 已经准备好了,ApplicationContextInitializers 被调用, bean definitions 被加载之前 |
ApplicationStartingEvent | 在一次启动之前发布 |
ApplicationEnvironmentPreparedEvent | 在 Environment 准备好之后,会有 context 去使用这一 Environment, 会在 context 创建之前发出 |
ApplicationPreparedEvent | 会在 bean definitions 加载之后,refresh 之前发布 |
ApplicationStartedEvent | context 更新之后,任何应用或命令行启动调用之前 |
ApplicationReadyEvent | 任何应用或命令行启动调用之后发布,说明应用已经可以被请求了 |
ApplicationFailedEvent | 启动发生有异常时发步 |
如何监听
监听器需要使用 org.springframework.context.ApplicationListener 这个接口的实例, 其声明如下:
@FunctionalInterface public interface ApplicationListenerextends EventListener { /** * Handle an application event. * @param event the event to respond to */ void onApplicationEvent(E event); }
需要使用 SpringApplication.addListeners(…) 或 SpringApplicationBuilder.listeners(…) 来添加监听器。也可以在 META-INF/spring.factories 文件中配置:org.springframework.context.ApplicationListener=com.example.project.MyListener。
例子:
public class StartingEventListener implements ApplicationListener{ @Override public void onApplicationEvent(ApplicationStartingEvent applicationStartingEvent) { System.out.println("called own starting listener"); System.out.println(applicationStartingEvent.getClass()); } }
@SpringBootApplication public class DemoApplication { public static void main(String[] args){ SpringApplication application = new SpringApplication(DemoApplication.class); application.addListeners(new StartingEventListener()); application.run(args); } }
终端运行 jar 包:
$ java -jar build/libs/springlisteners-0.0.1-SNAPSHOT.jar called own starting listener class org.springframework.boot.context.event.ApplicationStartingEvent . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.1.3.RELEASE)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。