解构EventBus框架(四)Google guava的实现
EventBus的主要模块 Subscribe 注解,可以标注哪个方法可以被注册和通知。它要求被注解的方法有且只有一个参数,并且该参数就是要注册监听的事件,例如: class EventBusChangeRecorder { @Subscr...
EventBus的主要模块 Subscribe 注解,可以标注哪个方法可以被注册和通知。它要求被注解的方法有且只有一个参数,并且该参数就是要注册监听的事件,例如: class EventBusChangeRecorder { @Subscr...
EventBus实现的思路 定义类: MyEventBus 事件总线 方法: register 注册 unregister 取消注册 post 分发 Event 事件 EventHandler 事件处理器 以下以两张图来表达实现的原理 注册...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
总线的由来 总线的概念来源于计算机硬件,指的是各个硬件之间的交互方式。总线提供了一个通用的方式为各组件提供数据传输和控制逻辑。 我们引入“事件总线”,它为我们解决了两个核心的问题 统一的事件注册 统一的事件分发 引入EventBus 以Go...
业务背景 笔者所从事的电信业务中,经常涉及到宽带新开户的业务。在办理宽带开户的同时,会涉及到很多其它的业务,比如通知工单服务(预约工程师上门装机),通知资管服务(申请光猫设备)以及通知消息推送服务(给用户发短信)等。 针对这些业务,我们做一...
综述 有关SpringBoot应用集成Docker有多种方式,笔者的技术选型基于团队整体的考虑,主要有如下几个方面: 持续集成:主要考虑持续集成的便利性,以及可扩展性(笔者团队的持续集成工具采用Jenkins) 学习成本:主要考虑的是研发人...
synchronized是做什么用的? synchronized是Java中实现锁的一种方式,我们可以通过synchronized来给一个方法,一个属性,一个对象等资源进行加锁。 我们为什么需要加锁呢? 可能你会说,是因为当某个资源被多个线...
我们首先实现一个能简单执行任务的线程池,很明显,这样的线程池需要具备两个要素,一个是工作线程,一个是任务队列 //工作线程 private List<Thread> workers; //任务队列 private final B...
开篇 有关这个系列的题目,我也纠结了一阵子。不知道该如何取名,原本想着叫“Java 线程池代码解读”,后来觉得单纯的代码解读,很可能无法理解其设计的精髓。思来想去,觉得还是叫“实现一个线程池”比较合适。为什么呢? 很多人可能会有疑惑,既然J...
最近想总结一些Java并发相关的内容,先写吧,写到哪儿就是哪[捂脸] 1、物理计算机的并发问题 在说明Java并发特性之前,先简单了解一下物理计算机中的并发问题,这二者有不少相似之处。物理机对并发的处理方案对于虚拟机也有很大...
在SpringBoot的项目中, 我们可以看到, web.xml、springmvc.xml、applicationContext.xml这样的配置文件已 经不见了, 取而代之的是各种的注解, 注解开发给我们带来了很多的便利, 利用Java...