ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext()
ctx.registerShutdownHook();
ctx.addApplicationListener(new ApplicationListener<ContextClosedEvent>() {
@Override
public void onApplicationEvent(ContextClosedEvent event) {
ServerTask task = (ServerTask) ctx.getBean("serverTask");
task.exit();
logger.error("系统关闭成功");
}
});
一开始使用destroy方法想通过这个来监听jvm 关闭事件,但是destroy方法之间是没有优先级的,所以无法处理。
通过这种监听ContextClosedEvent事件来处理一些事务及保存数据
分享到:
相关推荐
本文主要介绍了Spring框架中的ApplicationListener监听器的用法详解,通过示例代码对 listeners 的实现和使用进行了详细的讲解,对大家的学习或者工作具有一定的参考学习价值。 一、什么是ApplicationListener? ...
Spring Boot事件处理基于Spring框架的ApplicationEvent和ApplicationListener接口。当一个事件发生时,Spring会创建一个ApplicationEvent对象并将其发布到所有注册的ApplicationListener。这种设计模式被称为观察者...
编写自定义 ApplicationListener 非常简单,开发者只需要编写一个实现 ApplicationListener 接口的类,并实现 onApplicationEvent 方法。在这个方法中,开发者可以执行任何操作,例如获取 Spring 上下文、执行数据库...
Spring提供了一种事件驱动的模型,允许Bean之间通过ApplicationEvent和ApplicationListener进行解耦合的消息传递。这里会详细解释如何发布和监听自定义事件,以及Spring的事件处理机制。 **CH4_SpringAOP** Spring ...
在Spring中,事件监听机制由三部分组成:事件(ApplicationEvent)、事件监听器(ApplicationListener)和事件广播器(ApplicationEventMulticaster)。接下来我们将深入探讨这些概念以及如何在实际应用中使用它们。...
Spring提供了一种简单的方式,通过实现ApplicationListener接口或者使用@Component加上@EventListener注解来定义监听器: 1. 实现ApplicationListener接口: ```java @Component public class CustomEventListener...
在 Spring 中,事件机制的实现主要依赖于 ApplicationEvent 和 ApplicationListener 两个接口。ApplicationEvent 是一个抽象的事件类,它是所有事件的父类。ApplicationListener 是一个接口,它定义了事件发生时的回...
在Spring Boot中,事件是通过`ApplicationEvent`类来表示的,它是一个简单的Java对象,包含了事件的具体信息。而监听事件的方法则由`ApplicationListener`接口实现。下面我们将深入探讨如何在Spring Boot中实现多个...
`ApplicationEventListener` 类实现了 `ApplicationListener` 接口,重写了 `onApplicationEvent` 方法来监听不同的事件。在这个示例中,根据事件的不同类型,控制台将打印出不同的信息。 - 当调用 `ctx.start()` ...
在Spring中,Bean可以通过ApplicationEvent和ApplicationListener接口来发布和监听事件,这有助于组件间的通信。例如,当数据库连接关闭时,可以发布一个自定义事件,让其他关心这个事件的Bean进行相应的处理。此外...
public class CustomEventListener implements ApplicationListener<CustomEvent> { @Override public void onApplicationEvent(CustomEvent event) { System.out.println("接收到事件:" + event.getEventData()...
以下是一个简单的SpringBoot应用程序,演示了如何使用`ApplicationContextInitializer`和`ApplicationListener`来实现回调监听: ```java @SpringBootApplication public class SpringBootRunApplication { ...
8. **观察者模式**:Spring事件驱动模型,如ApplicationEvent和ApplicationListener,实现了发布订阅模式,允许组件之间进行异步通信。 9. **组合模式**:Spring的Bean装配支持XML、注解和Java配置,这三种方式可以...
5. **事件驱动模型**:Spring提供了ApplicationEvent和ApplicationListener接口,用于在容器内部进行事件传播。手写时,可以模拟这一机制,实现事件的发布和监听。 6. **扩展性**:优秀的IOC容器应具备良好的扩展性...
6. **事件监听**:实现Spring中的ApplicationEvent和ApplicationListener机制,让我们的MiniSpring支持事件驱动的通信。 7. **基于注解的配置**:让MiniSpring支持注解驱动的开发,如同Spring一样,开发者可以使用@...
当调用此方法时,Spring会查找所有注册的`ApplicationListener`,并将事件对象传递给它们的`onApplicationEvent`方法。`ApplicationListener`是接口,任何实现了这个接口的类都可以作为事件监听器,监听并处理特定...
Spring提供了ApplicationEvent和ApplicationListener接口,允许在容器中注册的bean之间进行事件的发布和监听,实现不同bean之间的通信。 以上是对Spring框架及其主要概念的简要介绍,涵盖了Spring的核心特性,如...
3. **事件发布机制**:Spring 使用 ApplicationEvent 和 ApplicationListener 实现了事件驱动的架构,研究这一机制如何帮助应用组件之间的通信。 4. **MVC 框架**:分析 DispatcherServlet、HandlerMapping 和 ...
Spring事件处理的核心类有三个:ApplicationEvent、ApplicationEventPublisher和ApplicationListener。ApplicationEvent是所有自定义事件的基类,我们通常会继承它来创建自己的事件类。ApplicationEventPublisher...
- **事件机制**:Spring的ApplicationEvent和ApplicationListener接口如何实现事件驱动的通信。 - **事务管理**:Spring如何支持编程式和声明式事务管理,以及其与JTA的集成。 - **MVC架构**:Spring MVC如何处理...