Spring的事件监听可以运用到系统的异常事件监听上。
java代码:
package com.spring.test.listener;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class LoginAction implements ApplicationContextAware{
private ApplicationContext ac;
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
this.ac = arg0;
}
public int login(String username,String password){
ActionEvent ae = new ActionEvent(username);
this.ac.publishEvent(ae);
return 0;
}
}
package com.spring.test.listener;
import org.springframework.context.ApplicationEvent;
public class ActionEvent extends ApplicationEvent {
public ActionEvent(Object par){
super(par);
}
}
package com.spring.test.listener;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
public class ActionListener implements ApplicationListener {
public void onApplicationEvent(ApplicationEvent arg0) {
// TODO Auto-generated method stub
if(arg0 instanceof ActionEvent){
System.out.println(arg0.toString());
}
}
}
package com.spring.test.listener;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext ac = new FileSystemXmlApplicationContext("/src/applicationContext.xml");
LoginAction action = (LoginAction)ac.getBean("loginaction");
action.login("hello", "1234556");
}
}
运行结果:
2011-08-23 15:19:11 org.springframework.context.support.FileSystemXmlApplicationContext
com.spring.test.listener.ActionEvent[source=hello]
分享到:
相关推荐
在Spring 3.0及以上版本,可以使用`@EventListener`注解来监听事件。这个注解可以放在任何方法上,只要这个方法接受一个`ApplicationEvent`的子类作为参数。 ```java @Component public class CustomEventListener ...
Spring事件监听机制是Spring框架中的一个重要特性,它基于经典的观察者模式,允许应用程序组件之间进行松耦合的通信。在Spring中,事件监听机制由三部分组成:事件(ApplicationEvent)、事件监听器(Application...
即使某个组件不是由Spring管理的,也可以通过`ApplicationEventMulticaster`的API来监听事件。这提供了一种方式让非Spring组件参与到Spring事件系统中。 9. **异步事件处理** 如果希望事件处理是异步的,可以使用...
在Spring中,事件发布者负责发布事件,而事件监听者则负责监听事件并执行相应的操作。 1. 观察者模式 Spring的事件监听机制是观察者模式的一种实现。观察者模式是一种常用的设计模式,它允许对象之间相互通信,而...
spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听;spring容器启动和关闭时事件监听
比如,你可以使用`@EventListener`注解来监听事件,这样可以更直接地将事件处理绑定到特定的方法上,同时可以配置一些额外的属性,如`condition`用于条件判断,`order`用于控制事件处理顺序等。例如: ```java @...
在Spring框架中,`ApplicationContext`不仅是一个容器,用于管理Bean的生命周期和依赖注入,它还提供了事件发布和监听的功能。这个特性使得Spring应用能够实现组件间的异步通信,类似于消息队列(MQ)的工作模式。...
在Spring框架中,事件监听是一种常见的模式,用于在应用程序中实现不同组件之间的解耦通信。这一机制使得系统可以在不直接依赖彼此的情况下,传递信息和触发响应。本文将深入探讨Spring中的事件监听机制,并通过源码...
Spring监听器及定时任务实现方法详解 在本文中,我们将详细介绍Spring监听器及定时任务实现方法的详解。通过示例代码,我们将展示如何使用Spring监听器和定时任务来实现批处理任务的执行。 Spring监听器 在Spring...
在使用Spring事件机制实现异步的方法时,通常需要将事件监听器添加到ApplicationContext中。在上面的代码中,使用@SpringBootApplication的addListeners方法将MyListener添加到ApplicationContext中。 使用@Event...
SpringEventTest工程是一个用于演示Spring框架中事件发布与监听机制的测试项目。在这个工程中,我们将深入探讨Spring的ApplicationEvent类以及如何定义和使用监听器。Spring事件模型是基于观察者模式实现的,它允许...
在Spring Boot中,监听器是用来响应特定事件的组件,例如Web应用程序的启动和关闭。`MyListener`类实现了`ServletContextListener`接口,这个接口有两个主要方法:`contextInitialized`和`contextDestroyed`。当Web...
此外,还会检查Environment中的必要属性,设置事件监听器,以及创建早期的Spring事件集合。 2. **BeanFactory 创建阶段** `obtainFreshBeanFactory()`方法在此阶段执行,它首先刷新或销毁现有的BeanFactory,然后...
首先,Spring事件驱动模型是基于观察者模式实现的,即发布者(Publisher)发布事件,订阅者(Subscriber)监听并处理这些事件。在Spring中,事件对象通常是`ApplicationEvent`的子类,发布事件的方法是`...
Spring事件处理基于发布/订阅模式,其中事件是消息的载体,而事件监听器则是对这些消息感兴趣的订阅者。在这个场景中,我们将探讨Spring MVC实例与Spring事件处理的结合。 首先,让我们了解Spring MVC。Spring MVC...
- 在Spring Boot应用中,我们可以创建一个`@Component`,并使用`@EventListener`注解来监听特定事件,或者自定义一个`ApplicationListener`监听`ApplicationReadyEvent`,在应用启动后开始监听文件夹。 - 使用`@...
+ springBoot + springCloud + 日志组件logback-spring + 多配置 + 多数据源...+ 传参注解式校验 + session练习 + 公用日志设计封装 + db乐观锁设计 + 优雅启停 + 配置文件信息加密 + AES加解密 + spring 事件监听设计
通过发布和监听事件,我们可以创建出更加灵活、可维护的系统架构。 综上所述,Spring事件是基于观察者模式的一种设计模式实现,提供了发布-订阅式的事件处理能力,有助于构建松耦合的应用程序。通过创建自定义事件...
在Spring boot中通过HttpSessionListener监听器统计在线人数是一种常见的技术实现方式,适用于需要跟踪和管理用户会话状态的Web应用程序。以下是从给定文件中提炼的关键知识点。 首先,了解HttpSessionListener接口...
不过,你也可以通过`@EventListener`注解在方法级别上监听事件。 发布事件是通过Spring的`ApplicationContext`进行的。在你的服务或控制器中,你可以获取到`ApplicationContext`,然后调用其`publishEvent`方法来...