4

研究 Seam 3,我发现 Seam Solder 允许将@Named注解应用于包——在这种情况下,这个包中的所有 bean 将被自动命名,就好像它们被自己限定一样@Named。我没有看到做这样的事情有太多好处(你可以指出一些它可能有用的情况!)但这让我想知道:CDI(或Seam Solder)允许任意限定词也适用于包,保持这个@Named限定词的相同语义?它在 CDI 规范的未来版本中是否可能提供功能?有不允许的理由

4

1 回答 1

1

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

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

CDI(或Seam Solder)允许将任意限定符也应用于包并保持此@Named 限定符的相同语义不是合理的吗?

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

于 2011-09-08T07:46:49.560 回答