编程语言
首页 > 编程语言> > java – 是否(或应该)CDI提供包限定符?

java – 是否(或应该)CDI提供包限定符?

作者:互联网

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

解决方法:

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名称.虽然我同意你的观点,这肯定不是一个杀手级的功能,但我可以想象,通常情况下,某个包中的所有内容都需要通过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都需要相同的限定符.如果你记得限定符是用于松散耦合组件的话,那就更有意义了……(假设你有三个实现的接口 – 几乎可以肯定那些属于不同的包甚至是jar)

标签:java,cdi,qualifiers,seam-solder
来源: https://codeday.me/bug/20190709/1418449.html