最近我开始将一个正在进行的Java EE项目迁移到CDI概念(事件,生产者,处理器,限定符等)的更密集使用中,经过一周的密集编码后,我终于发现自己迷失了自己的代码:产生什么,在哪个范围内,谁观察特定事件等等。在上面的顶部 - 理解,即,对于所有这些事件,执行流程的概念不太适用于CDI。总而言之,这就像失去对代码的控制一样。
对CDI的意识形态总体上感到满意,我想问你一般如何处理你的CDI项目,包装CDI实体的最佳实践,跨模块可见性(web,ejb,common libs)并使代码更易读和易懂。在这方面,我会感谢您个人经历中的任何好文章或想法。
答案 0 :(得分:1)
我建议您从Deltaspike项目下载源代码吗?这是来自许多最好的CDI专家的高级项目,你可能从他们的结构中挑选出一两件事。
https://deltaspike.apache.org/documentation/source.html
努力获得良好的软件包名称以及javadoc中的链接,以便获得面包屑。
对我有用的是减少我的事件并使用更多@Qualifiers
通常我的事件非常相似,而@Qualifiers
在许多情况下都有意义。
但真正控制倒置的一部分正是无法控制。也许你不需要变得性感并且制作具有不同范围的东西,而且这些东西太多了,这听起来很难记住。