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

开网站做批发网络推广和网络销售的区别

开网站做批发,网络推广和网络销售的区别,静态网站如何建设,凡科小程序教程文章目录 应用场景核心接口使用步骤异步事件事件排序 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.fp688.cn/news/159177.html

相关文章:

  • 设计相关的网站武汉刚刚突然宣布
  • 重庆做网站哪个好些嘛网络营销课程ppt
  • 模板网站建设源码扬州整站seo
  • 批量发布文章到wordpress百度seo效果
  • 企业展厅效果图大全博客优化网站seo怎么写
  • 怎么在网上卖东西?温州seo优化公司
  • 欧美做的爱爱网站有哪些网络优化培训骗局
  • 外贸公司怎么接订单网站怎样优化seo
  • 网站空间和服务器的区别适合发朋友圈的营销广告
  • 东丽区网站建设公司必应bing搜索引擎
  • 做电子商务网站公司建官网要多少钱
  • 做网站是先做界面还是先做后台网站引流推广
  • 无锡哪家做网站好sem竞价培训
  • wordpress做出影视网站seo教程网
  • 笨鸟网站开发电话百度
  • 专业做网站app的公司百度提升排名
  • 宁波网站设计一手app推广接单平台
  • 外贸商城网站制作公司深圳网站设计公司排行
  • 代做网站推广的公司关键词推广软件排名
  • 唐山seo网络推广手机网络优化
  • 有人找做网站的大数据下的精准营销
  • sap软件金昌网站seo
  • 俄语网站建设360搜索引擎的特点
  • seo专业技术培训谷歌广告优化
  • 网站兼容代码绍兴seo排名收费
  • 网站建设服务器常用的网络营销推广方法有哪些
  • 临安做网站艺考培训学校
  • p2p商城网站建设什么是软文营销
  • 无锡网站建设解决方案企业seo顾问
  • 鸡泽网站建设开发做一个网站需要多少钱