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

黄浦网站推广公司wordpress主题分为多章节

黄浦网站推广公司,wordpress主题分为多章节,怎么用百度云做网站空间,wordpress hotnews目录 事件基类定义 事件监听器接口 事件发布者接口及实现 事件广播器实现 小小总结 Spring源码分析之事件机制——观察者模式#xff08;一#xff09;-CSDN博客 Spring源码分析之事件机制——观察者模式#xff08;二#xff09;-CSDN博客 Spring源码分析之事件机制… 目录 事件基类定义 事件监听器接口 事件发布者接口及实现 事件广播器实现 小小总结 Spring源码分析之事件机制——观察者模式一-CSDN博客 Spring源码分析之事件机制——观察者模式二-CSDN博客 Spring源码分析之事件机制——观察者模式三-CSDN博客 这两篇文章是这个篇章的后篇感兴趣的读者可以阅读一下从spring源码分析观察者模式 事件基类定义 public abstract class ApplicationEvent extends EventObject {// 事件发生的时间戳private final long timestamp;public ApplicationEvent(Object source) {// source表示事件源即发布事件的对象super(source);this.timestamp System.currentTimeMillis();}// 获取事件发生时间public final long getTimestamp() {return this.timestamp;} } ApplicationEvent作为所有Spring事件的基类继承自Java的EventObject通过记录时间戳和事件源为事件提供了基本的元数据信息使得事件能够携带更多的上下文信息。 事件监听器接口 FunctionalInterface public interface ApplicationListenerE extends ApplicationEvent extends EventListener {/*** 处理应用事件的方法* param event 要响应的事件*/void onApplicationEvent(E event); } ApplicationListener接口定义了事件监听器的标准通过泛型约束限定了具体监听的事件类型使得监听器能够只关注特定类型的事件我觉得spring的这种设计既保证了类型安全又提供了良好的扩展性。 事件发布者接口及实现 FunctionalInterface public interface ApplicationEventPublisher {/*** 发布事件的方法* param event 要发布的事件*/default void publishEvent(ApplicationEvent event) {publishEvent((Object) event);}/*** 发布任意对象作为事件* param event 要发布的事件对象*/void publishEvent(Object event); } public abstract class AbstractApplicationContext implements ApplicationEventPublisher {// 事件广播器private ApplicationEventMulticaster applicationEventMulticaster;// 早期事件缓存用于存储容器未完全初始化前的事件private SetApplicationEvent earlyApplicationEvents;Overridepublic void publishEvent(Object event) {// 确保事件对象是ApplicationEvent类型ApplicationEvent applicationEvent;if (event instanceof ApplicationEvent) {applicationEvent (ApplicationEvent) event;} else {// 将普通对象包装为PayloadApplicationEventapplicationEvent new PayloadApplicationEvent(this, event);}// 如果容器还在初始化则将事件添加到早期事件集合if (this.earlyApplicationEvents ! null) {this.earlyApplicationEvents.add(applicationEvent);} else {// 通过事件广播器发布事件getApplicationEventMulticaster().multicastEvent(applicationEvent);}// 如果存在父容器则同时发布到父容器if (this.parent ! null) {this.parent.publishEvent(event);}}// 初始化事件广播器protected void initApplicationEventMulticaster() {ConfigurableListableBeanFactory beanFactory getBeanFactory();// 如果容器中已定义了广播器则使用已定义的if (beanFactory.containsLocalBean(APPLICATION_EVENT_MULTICASTER_BEAN_NAME)) {this.applicationEventMulticaster beanFactory.getBean(APPLICATION_EVENT_MULTICASTER_BEAN_NAME, ApplicationEventMulticaster.class);} else {// 否则创建一个简单的事件广播器this.applicationEventMulticaster new SimpleApplicationEventMulticaster(beanFactory);beanFactory.registerSingleton(APPLICATION_EVENT_MULTICASTER_BEAN_NAME, this.applicationEventMulticaster);}} } AbstractApplicationContext实现了事件发布的核心逻辑通过事件广播器将事件分发给所有相关的监听器同时处理了事件的向上传播和早期事件的缓存。 事件广播器实现 public class SimpleApplicationEventMulticaster extends AbstractApplicationEventMulticaster {// 任务执行器用于异步事件处理Nullableprivate Executor taskExecutor;// 错误处理器Nullableprivate ErrorHandler errorHandler;Overridepublic void multicastEvent(ApplicationEvent event) {// 解析事件类型并广播multicastEvent(event, resolveDefaultEventType(event));}Overridepublic void multicastEvent(final ApplicationEvent event, Nullable ResolvableType eventType) {// 解析事件类型ResolvableType type (eventType ! null ? eventType : resolveDefaultEventType(event));// 获取所有匹配的监听器并执行for (final ApplicationListener? listener : getApplicationListeners(event, type)) {Executor executor getTaskExecutor();if (executor ! null) {// 异步执行executor.execute(() - invokeListener(listener, event));} else {// 同步执行invokeListener(listener, event);}}}protected void invokeListener(ApplicationListener? listener, ApplicationEvent event) {ErrorHandler errorHandler getErrorHandler();if (errorHandler ! null) {try {doInvokeListener(listener, event);} catch (Throwable err) {errorHandler.handleError(err);}} else {doInvokeListener(listener, event);}} } SimpleApplicationEventMulticaster提供了事件广播的具体实现支持同步和异步两种事件处理方式并提供了错误处理机制通过这种设计使得事件的处理更加灵活和可靠同时也为性能优化提供了可能。 小小总结 Spring的事件机制通过这些精心设计的组件构建了一个完整的观察者模式实现它不仅支持Spring框架内部的事件处理也为应用程序提供了一个强大的事件驱动架构基础通过这种方式可以实现组件间的松耦合通信提高系统的可维护性和扩展性。整个实现考虑了性能、可靠性和易用性等多个方面是一个非常典型的观察者模式应用案例。
http://www.w-s-a.com/news/977140/

相关文章:

  • 微网站怎么开发wordpress 发表评论
  • 山东网站建设是什么一页网站首页图如何做
  • 游戏开发与网站开发哪个难万网影
  • 做网站编程语言建筑施工特种证书查询
  • 找人做网站内容自己编辑吗修改wordpress登陆界面
  • 登陆建设银行wap网站湖南网站建设磐石网络答疑
  • 58网站怎么做浏览度才高论坛网站怎么做排名
  • wordpress 手机网站支付京东网站建设的经费预算
  • 自己怎么样做游戏网站做海外贸易网站
  • 建立什么样的网站好制作网页网站代码
  • 岳麓区专业的建设网站公司尚一网常德论坛
  • 电商网站建设实训报告360站长平台链接提交
  • 个性化网站建设公司个人网站备案类型
  • 腾讯建站模板上海网站开发有限公司
  • 网站和小程序的区别请问做网站怎么赚钱
  • 网站logo设计免费版在线网站开发建设准备工作
  • wordpress多站点 主题南京做网站好的公司
  • 广州 门户seo到底是做什么的
  • 可以登录国外网站吗如何用家用电脑做网站
  • 吉安建站公司wordpress企业
  • 河北住房和城乡建设厅网站6thinkphp做视频网站
  • 遵义网站制作一般需要多少钱深圳全国网站制作哪个好
  • 公众平台网站价格哪个网站做餐饮推广最好
  • 深圳 公司网站设计重庆的网站设计公司价格
  • 网站开发市场分析餐饮平台app有哪些
  • 制作一个收费网站要多少钱开发网站需要什么技术
  • 网站流量统计平台二手域名做网站不收录
  • 蒙古网站后缀mysql8.0 wordpress
  • 免费建立一个网站互联网推广培训
  • WordPress多站点绑定域名深圳住房建设部官方网站