7 Matching Annotations
  1. Apr 2025
  2. Feb 2025
    1. 整个Java SE中标准的自定义事件实现就是这个样子,基本上涉及三个角色,即自定义的事件类型、自定义的事件监听器和自定义的事件发布者,关系如图5-4所示

      自定义事件发布类结构图

    2. 在实现中,需要注意到,为了避免事件处理期间事件监听器的注册或移除操作影响处理过程,我们对事件发布时点的监听器列表进行了一个安全复制(safe-copy)。

      我并不清楚,这个处理为什么能生效?

    3. 组合事件类和监听器,发布事件。有了自定义事件和自定义事件监听器,剩下的就是发布事件,然后让相应的监听器监听并处理事件了。通常情况下,我们会有一个事件发布者(EventPublisher),它本身作为事件源,会在合适的时点,将相应事件发布给对应的事件监听器。

      在代码中,我们会看到,一个事件发布者的角色内含了一个事件监听器列表。同时实现了一个方法执行到监听器的方法,进而触发事件发布方法,以及管理事件监听器的方法。

    4. 代码清单5-13 自定义事件监听器MethodExecutionEventListener定义 2public interface MethodExecutionEventListener extends EventListener {/**3* 处理方法开始执行的时候发布的MethodExecutionEvent事件*/void onMethodBegin(MethodExecutionEvent evt);/**4* 处理方法执行将结束时候发布的MethodExecutionEvent事件*/void onMethodEnd(MethodExecutionEvent evt);5}事件监听器接口定义首先继承了java.util.EventListener,然后针对不同的事件发布时机提供相应的处理方法定义,最主要的就是,这些处理方法所接受的参数就是MethodExecutionEvent类型的事件。也就是说,我们的自定义事件监听器类只负责监听其对应的自定义事件并进行处理

      事件监听器接口应该继承EventListener,实现该接口的类仅仅处理目标事件类

  3. Aug 2023
    1. 该接口描述为xxxFactory是非常合适的,很好的表达了1:N的关系

      这和我手动实现的,自定义顺序的比较器的功能非常类似; 通过范型生成不同类型的比较器;我的那个工具类,也应该叫 CustomOrderComparatorFactory 比较合适

  4. Aug 2022
    1. MQ中间件与最终用户提供的应用程序代码(生产者/消费者)之间的桥梁

      代码和配置中自定义设置的output或input binding