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

Java CDI会(或应该)提供包限定符吗?,java,cdi,qualifiers,deltaspike,Java,Cdi,Qualifiers,Deltaspike,在研究Seam 3时,我发现Seam焊料允许将@Named注释应用到包中-在这种情况下,此包中的所有bean都将自动命名,就好像它们自己被@Named限定一样。我没有看到这样做有太多的好处(你可以告诉我一些情况下它会很有用!),但这让我想:CDI(或Seam-Wedder)允许任意限定符也应用于包,保持这个@Named限定符的相同语义,这难道不合理吗?在CDI规范的未来版本中,它是否是一种可能的功能?有没有不允许的理由 我认为做这样的事情没有太多好处(你呢 可以给我指出一些有用的情况!) @Na

在研究Seam 3时,我发现Seam焊料允许将
@Named
注释应用到包中-在这种情况下,此包中的所有bean都将自动命名,就好像它们自己被
@Named
限定一样。我没有看到这样做有太多的好处(你可以告诉我一些情况下它会很有用!),但这让我想:CDI(或Seam-Wedder)允许任意限定符也应用于包,保持这个
@Named
限定符的相同语义,这难道不合理吗?在CDI规范的未来版本中,它是否是一种可能的功能?有没有不允许的理由

我认为做这样的事情没有太多好处(你呢 可以给我指出一些有用的情况!)

@Named
(您当然知道)可以从JSF页面中访问托管bean。应用于包级别,它将简单地为该包中的所有bean分配一个EL名称。虽然我同意你的观点,这当然不是一个杀手级的特性,但我可以想象,通常某个包中的所有内容都需要通过EL访问。当然,如果单独注释所有bean在可读性方面不会更好,这是另一个问题

CDI(或缝焊)允许任意焊接,这难道不合理吗 也要将限定符应用于包,并保持不变 这个@Named限定符的语义


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

鉴于您提到的可读性,我几乎不会在包中使用
@Named
。另外,我可以为各种相关接口(
Authenticator
LDAPQuery
LDAPConnector
)实现一个包含各种紧密实现的包(
Authenticator
Query
Connector
)。在本例中,我很乐意对包进行限定——即使是因为自己的包将记录类的“LDAP性质”。听起来不合理吗?顺便说一句,我不知道
@SomeQualifier
-你有关于它的链接吗?嗯,我知道了。我个人不赞成这样的方法(我认为这很危险,接近于“我正在以某种方式对我的类进行分组,唯一的原因是它为我节省了一个限定符”),加上bean类型的ldap性质已经可以由类型名本身和/或相应的包名来表示。无论如何,通过CDI扩展(在启动时扫描bean类型,看看是否要应用任何包限定符),这样的事情应该相对容易实现。。。哦,
@somequalifier
被记录在
@ijustneedaQualiferNamefortheExample
:-)啊,现在关于这个革命性的注释一切都有意义了:)顺便说一句,我想要组织我的bean的方式是我个人觉得更自然的方式。我不会仅仅为了避免一些注释而使用它。不管怎样,我认为你给了我一个很好的答案,关于为什么人们不考虑太多关于合格包的问题。欢迎提出更多意见,但您的回答被接受:)