【问题标题】:CDI Interceptor vs CDI eventsCDI 拦截器与 CDI 事件
【发布时间】:2018-09-26 18:15:20
【问题描述】:

我有一个关于在 Java EE 中拥有尽可能解耦的系统的最佳实现的问题,问题是使用 CDI 事件或 CDI 拦截器是否更好,显然对于安全性之类的事情来说,拦截器是一个,对于日志,例如根据具体情况使用两者中的任何一个,但对于必须在执行另一个任务时完成某个任务的业务规则。

撇开异步事件可能发生也可能不发生不谈,我更倾向于模块的解耦,因为对于我的概念,事件比拦截器更解耦,因为在拦截器中,包含函数的类必须被定义拦截,但在事件的情况下,只有消息必须被定义。

【问题讨论】:

    标签: java jakarta-ee design-patterns cdi


    【解决方案1】:

    拦截器和事件无关。它们有不同的用途。

    拦截器更像是一种“面向方面的编程”风格的编程。正如您所提到的,事件是一个解耦方面。

    拦截器属于“代码不知道或不关心正在发生什么”的类型,其中代码积极参与事件,因为代码必须生成它们。只是代码并不关心它们会发生什么。

    两者都有关注点分离的元素。

    还应注意 CDI 事件不是异步的。您可以附加异步行为的侦听器,但开箱即用,它们不是。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-10
    • 2020-06-17
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2014-11-14
    • 2015-02-03
    • 1970-01-01
    相关资源
    最近更新 更多