`

spring 自定义事件 处理机制 2

阅读更多

在SERVICE的抽象类中去掉onApplicationEvent方法,不需要了,改写发布事件的方法,修改后变成这样 

Java代码 
  1. import org.springframework.context.ApplicationEvent;  
  2.   
  3. /** 
  4.  * 实现顶层接口的抽象类 
  5.  */  
  6. public abstract class AbstractBaseService implements IBaseService {  
  7.          /** 
  8.      * 发布事件 
  9.      */  
  10.     protected final void publishEvent(BaseEvent event) {  
  11.         //使用自已事件工具类发布事件  
  12.         EventController.publishEvent(event);  
  13.     }  
  14.   
  15.          /**   
  16.           * 默认实现处理事件的方法  
  17.             */    
  18.          public void onBaseEvent(BaseEvent event) {     
  19.          }  
  20.   
  21.          /** 
  22.      * 注意虽然也是在顶层接口中都实现了事件监听,但是只有这个方法有返回值时,才真正的会被调用 
  23.      */  
  24.     public List<Class<? extends BaseEvent>> getEventClasses(){  
  25.                    return null;  
  26.          }  
  27.   
  28. }  

    到此框架就完成了,UserServiceImpl删除用户时发布事件的代码还和原来一样,不需要改变,只是监听类要变一下,不再实现ApplicationListener接口,改而实现IBaseEventListener接口,不过不需要再具体类中实现,因为已经在顶层接口中继承了,代码 
Java代码 
  1. public class OtherServiceImpl extends AbstractBaseService {  
  2.     private IBaseDAO otherDao;  
  3.   
  4.     /** 
  5.      * 重写父类的方法,处理用户删除事件 
  6.      */  
  7.     protected void onBaseEvent(BaseEvent baseEvent){  
  8.                   //如果本类只处理一个事件,这里就不需要再类型判断了  
  9.                   UserDeleteEvent event = (UserDeleteEvent)baseEvent;  
  10.         otherDao.deleteOtherData(event.getSource().getId());  
  11.     }  
  12.            
  13.          /** 
  14.      * 返回本类所要处理所有事件 
  15.      */  
  16.     public List<Class<? extends BaseEvent>> getEventClasses() {  
  17.         List<Class<? extends BaseEvent>> eventClasses = new ArrayList<Class<? extends BaseEvent>>(1);  
  18.         //本类只监听用户删除事件  
  19.         eventClasses.add(UserDeleteEvent.class);  
  20.         return eventClasses;  
  21.     }  
  22. }  

分享到:
评论

相关推荐

    spring自定义注解样例

    总结来说,Spring自定义注解和AOP的结合使用,让我们能够灵活地在代码中插入跨切面的关注点,如日志记录、事务管理、性能监控等,而不必在每个方法中手动添加这些代码。这不仅提高了代码的整洁度,也使得系统更加...

    Spring 自定义注解的解析

    总的来说,Spring自定义注解的解析是一个强大且灵活的工具,可以帮助我们实现更精细化的代码组织和控制。结合`@ComponentScan`,我们可以轻松地在Spring环境中管理和利用自定义注解,进一步提升代码的可读性和可维护...

    spring 自定义属性编辑器

    首先,了解Spring中的属性编辑器机制。Spring会自动寻找并使用`java.beans.PropertyEditor`接口的实现来处理类型转换。这个接口定义了两个主要方法:`setAsText()`用于将字符串转换为对象,`getAsText()`则用于将...

    spring 事件处理

    在Spring框架中,事件处理是一种重要的通信机制,它允许组件之间进行解耦的通信。Spring事件处理基于发布/订阅模式,其中事件是消息的载体,而事件监听器则是对这些消息感兴趣的订阅者。在这个场景中,我们将探讨...

    spring mvc 和spring security自定义登录

    此外,Spring Security还提供了丰富的授权机制,如角色和权限控制。我们可以通过在URL前添加@Secured或@PreAuthorize注解,或者在配置类中定义访问规则,来限制对特定资源的访问。这使得我们可以根据用户的角色和...

    Spring自定义配置文件便签[Maven]工程可运行

    这个名为"Spring自定义配置文件便签[Maven]工程可运行"的项目,显然是一个基于Maven构建的Spring 5.0应用程序,它包含了自定义配置文件和标签的实现。让我们深入探讨一下这些概念及其在实际应用中的作用。 首先,...

    Spring Cloud Gateway的全局异常处理

    通过本文介绍的自定义异常处理逻辑,可以有效解决Spring Cloud Gateway默认异常处理机制中存在的问题,使得异常信息更加符合业务需求。此外,这种方式也为开发者提供了一个良好的起点,可以根据具体项目需求进一步...

    深入探索Spring事件监听机制:技术与应用

    Spring事件监听机制是Spring框架中的一个重要特性,它基于经典的观察者模式,允许应用程序组件之间进行松耦合的通信。在Spring中,事件监听机制由三部分组成:事件(ApplicationEvent)、事件监听器(Application...

    Spring 5.2.9 06 源码分析-spring自定义标签解析过程

    本文将深入剖析Spring 5.2.9版本中自定义标签的解析过程,旨在帮助读者理解Spring内部的工作机制。 首先,我们了解自定义标签的基本概念。在Spring中,自定义标签通常是通过实现`org.springframework.beans.factory...

    spring security 4 小例子带自定义过滤器

    这个过滤器可以在认证阶段处理特定的场景,如自定义的认证机制、特殊的身份验证令牌处理等。在实际应用中,可能还需要根据项目需求进行更复杂的定制,比如集成OAuth2、JWT或其他安全协议。 在提供的压缩包文件...

    使用Spring事件机制实现异步的方法

    开发者可以根据需要自定义事件和事件监听器,实现灵活的异步处理机制。 Spring事件机制的优点包括: * 松散耦合的设计理念,提高代码的可维护性和可扩展性。 * 事件机制可以解耦合业务逻辑和非业务逻辑,提高代码...

    spring事件的例子

    Spring事件处理还支持事件分发策略,如多线程处理事件,可以通过配置`SimpleApplicationEventMulticaster`或自定义实现`ApplicationEventMulticaster`接口来调整事件的传播方式。 此外,Spring还提供了`...

    spring自定义注解+Aspect使用1

    Spring 自定义注解和 Aspect 的使用 在本文中,我们将学习如何在 Spring 项目中使用自定义注解和 Aspect 来实现日志记录功能。我们将从头开始,创建一个简单的 Spring Boot 项目,然后使用自定义注解和 Aspect 来...

    自定义MVC框架(spring)

    在自定义MVC框架时,首先要实现请求分发机制。DispatcherServlet在Spring MVC中扮演着关键角色,它接收所有HTTP请求,解析请求信息,然后根据请求映射信息找到对应的Handler(控制器)。我们可以仿照这个设计,创建...

    这一次搞懂Spring自定义标签以及注解解析原理说明

    总结起来,Spring的自定义标签解析是通过`NamespaceHandler`机制实现的,而注解解析则依赖于类路径扫描和`BeanDefinition`的创建。这两者都是Spring实现声明式编程和依赖注入的重要组成部分,极大地简化了Spring应用...

    spring事件机制

    Spring框架的事件机制是其核心特性之一,它提供了一种基于发布-订阅模式的事件处理方式,使得在Spring应用中的不同组件之间可以进行解耦通信。这个机制允许一个组件(通常是一个服务)触发一个事件,然后其他感兴趣...

    借助spring自定义命令执行器

    在Spring中,我们可以创建一个自定义的BeanPostProcessor实现,它会在Spring容器初始化bean之后、bean被其他bean使用之前,对bean进行额外的处理,比如执行特定的方法。 3. **BeanPostProcessor**:Spring的...

    spring-security实现自定义登录认证.rar

    通过学习和运行这个示例,你可以深入理解Spring Security的自定义登录认证流程,以及如何与JWT相结合,为你的Spring Boot应用提供安全的认证和授权机制。记得在实际项目中,根据具体需求调整配置和代码,确保安全...

    06 源码分析-spring自定义标签解析过程

    本节将深入探讨Spring 5.2.9版本中自定义标签的解析机制,以及背后的源码实现。 首先,Spring XML配置文件中的自定义标签是由Spring的`BeanDefinitionParser`接口处理的。这个接口定义了`parse()`方法,用于解析...

    精讲RestTemplate自定义请求失败异常处理.docx

    在使用Spring框架中的`RestTemplate`进行HTTP请求时,我们可能会遇到各种异常情况,如服务超时、服务不存在等,这些异常...在实际项目中,这种自定义处理机制非常实用,能够帮助我们更好地管理和服务调用的错误情况。

Global site tag (gtag.js) - Google Analytics