java - CDI 会(或应该)提供包限定符吗?

标签 java cdi qualifiers deltaspike

研究 Seam 3,我发现 Seam Solder 允许将 @Named 注释应用于包 - 在这种情况下,该包中的所有 bean 都将自动命名,就好像它们符合条件一样@Named 他们自己。我没有看到做这样的事情有太多优势(你可以指出一些它可能有用的情况!)但它让我想知道:CDI(或 Seam Solder)允许任意限定符也应用于包,保持与此 @Named 限定符相同的语义? CDI 规范的 future 版本是否可能具有此功能?是否有理由允许它?

最佳答案

I didn't see too much advantages on doing something like this (and you can point me some situations where it can be useful!)

@Named(您当然知道)使托管 bean 可以从 JSF 页面中访问。应用于包级别,它将简单地为该包中的所有 bean 分配一个 EL 名称。虽然我同意你的看法,这肯定不是 killer 级功能,但我可以想象,某个包中的所有内容通常都需要通过 EL 访问。当然,就可读性而言,单独注释所有 bean 是否会更好是另一个问题。

wouldn't it be reasonable to CDI (or Seam Solder) to allow arbitrary qualifiers to be applied to packages as well, maintaining the same semantics of this @Named qualifier?

@SomeQualifier 会将相同的限定符应用于包中的所有 bean。与 @Named 相反,我很难想象这会有多大意义 - 回顾去年的几个 CDI 项目,我认为我从来没有一个包中的所有 bean 都需要相同的包预选赛。如果您还记得限定符用于组件的松散耦合,那么这就更有意义了……(假设您有一个具有三个实现的接口(interface)——几乎可以肯定它们属于不同的包甚至 jar)

关于java - CDI 会(或应该)提供包限定符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7343369/

相关文章:

java - JFrame 窗口栏 block 内容

java - 来自 Java 的 PCAP 纳秒分辨率

java - 学习 Java 字节码和 JVM

java - 如何将参数传递给 CDI 中另一个类的注入(inject)类?

jakarta-ee - 如何正确使用@Alternative 实现客户端

c - C 中的双指针常量正确性警告

java - Java 中的 native 方法是什么,应该在哪里使用它们?

java - 使用CDI和OSGI时出错

objective-c - 什么是带有可变限定符放置的 "the issue"?

java - 将默认应用程序上下文匿名传递到远程 EJB