当前位置: 首页 > news >正文

做网站公司排名多少钱中国联通和腾讯

做网站公司排名多少钱,中国联通和腾讯,深圳移动官网网站建设,wordpress 插入表格文章目录 应用场景核心接口使用步骤异步事件事件排序 Spring 事件(Application Event)是 Spring 框架中实现观察者模式的一种方式,可以通过发布者和监听器来处理事件,常用于类之间解耦合、异步操作。 观察者模式:观察者…

文章目录

      • 应用场景
      • 核心接口
      • 使用步骤
      • 异步事件
      • 事件排序

  Spring 事件(Application Event)是 Spring 框架中实现观察者模式的一种方式,可以通过发布者和监听器来处理事件,常用于类之间解耦合、异步操作。

  观察者模式:观察者模式(委托和事件)——老板来了我不知道


应用场景

  举例几个具体的使用场景:

  • 用户注册后发送欢迎邮件:用户注册成功后,可以发布一个事件,由监听该事件的邮件服务来发送欢迎邮件。
  • 订单处理:订单创建后,可以发布一个事件,由库存管理、支付处理、物流跟踪等不同的服务来监听和处理。
  • 数据变更通知:当数据库中的数据发生变化时,可以发布一个事件,由需要这些数据的其他服务来更新缓存或执行其他逻辑。
  • 日志记录和监控:在关键操作执行时,可以发布事件来进行日志记录或监控,而不需要在业务逻辑中直接调用日志服务。

核心接口

  1. ApplicationEvent:所有事件的父类,继承自 java.util.EventObject
  2. ApplicationListener:用于监听事件的接口,它定义了一个 onApplicationEvent(E event) 方法,当有事件发布时,该方法会被调用。
  3. ApplicationEventPublisher:用于发布事件的接口,通常由 Spring 容器实现。
  4. ApplicationEventMulticaster:用于管理事件监听器的注册和事件的广播。

使用步骤

  1. 定义事件:创建一个继承自 ApplicationEvent 的类。

    public class CustomEvent extends ApplicationEvent {private String message;// 构造器注入的方式记录事件msgpublic CustomEvent(Object source, String message) {super(source);this.message = message;}public String getMessage() {return message;}
    }
    
  2. 注册监听器

    1. 创建一个实现 ApplicationListener 接口的类。
    @Component
    public class CustomEventListener implements ApplicationListener<CustomEvent> {@Overridepublic void listener(CustomEvent event) {System.out.println("监听到事件发生啦- " + event.getMessage());}
    }
    
    1. 或者使用@EventListener,不必实现 ApplicationListener 接口,在任何 Spring 管理的 bean 上直接声明事件监听方法。
    @Component
    public class CustomEventListener {@EventListenerpublic void listener(CustomEvent event) {System.out.println("监听到事件发生啦- " + event.getMessage());}
    }
    
    1. 指定条件:如果需要根据条件来决定是否调用监听器方法,可以在 @EventListener 注解中使用 condition 属性。
    @EventListener(condition = "#event.message.contains('important')")public void listener(CustomEvent event) {System.out.println("监听到事件发生啦- " + event.getMessage());}
    
  3. 发布事件:通过自动注入 ApplicationEventPublisher 来发布事件。

    @Component
    public class CustomEventPublisher {@Autowiredprivate final ApplicationEventPublisher publisher;public void publishCustomEvent(String message) {CustomEvent customEvent = new CustomEvent(this, message);publisher.publishEvent(customEvent);  //把消息装进事件中}
    }
    
  4. 配置和运行:确保以上组件被 Spring 容器管理,并调用 publishCustomEvent 方法来发布事件。


异步事件

Spring 也支持异步事件。要启用异步事件处理,可以在配置中定义一个 @Async 注解的方法。

    @Async@EventListenerpublic void listener(CustomEvent event) {System.out.println("监听到事件发生啦- " + event.getMessage());}

事件排序

  如果需要确保事件的监听器按照特定的顺序执行,可以使用 @Order 注解或实现 Ordered 接口。

@Order(1)
@EventListener
public void listener(CustomEvent event) {System.out.println("监听到事件发生啦 - " + event.getMessage());
}
import org.springframework.context.ApplicationListener;
import org.springframework.core.Ordered;public class FirstEventListener implements ApplicationListener<CustomEvent>, Ordered {@Overridepublic void listener1(CustomEvent event) {System.out.println("我第一个听到我第一个执行: " + event.getMessage());}@Overridepublic int getOrder() {return 1; // 低值优先执行}
}public class SecondEventListener implements ApplicationListener<CustomEvent>, Ordered {@Overridepublic void listener2(CustomEvent event) {System.out.println("我第二个听到我第二个执行: " + event.getMessage());}@Overridepublic int getOrder() {return 2; // 高值后执行}
}
http://www.tj-hxxt.cn/news/57360.html

相关文章:

  • 抢票软件定制做抖音seo排名软件是否合法
  • 网站建设与管理大纲百度有几种推广方式
  • 做传媒网站公司给公司建网站需要多少钱
  • 沧州做网站哪家好邯郸百度推广公司
  • 宿州品牌网站建设公司整合营销策划方案模板
  • 1000个免费货源网站入口广州最新疫情情况
  • 哪些网站做的人比较少百度浏览器app下载
  • 帮人做钓鱼网站永州网络推广
  • 巩义网站优化企业seo关键字优化
  • 网上做论文的网站有哪些百度教育官网登录入口
  • 如何用手机建网站seo视频教学网站
  • 广州物流网站建设网站建设网站推广
  • 免费建站有哪些网站百度推广营销方案
  • 手工做的网站昆明seo
  • 静态网站说明书制作公司网站的公司
  • 商城网站设计制作自己怎么开电商平台
  • 建筑工程网络计划图天津百度seo排名优化
  • 心理咨询网站seo怎么做排名
  • 简述常用的网站开发软件东莞网站建设平台
  • 网站如可引导客户网站关键词优化排名外包
  • 广告牌制作报价单明细成都网站优化seo
  • php网站设计毕业论文优化大师的功能有哪些
  • 赤峰网站建设哪家好百度风云榜小说排行榜历届榜单
  • 做h5找图网站河南最近的热搜事件
  • 学做烘焙网站磁力狗
  • 免费学编程的网站有哪些百度域名收录
  • wordpress 说说 主题北京seo方法
  • 网站没有被搜索引擎收录推广普通话的内容简短
  • 优秀网站建设网页外包平台
  • 湖南营销型网站建设价格舆情信息范文