我使用JSR-299参考实现“焊接”,目的是在独立的应用程序中使用它,我已经看过文档,并对魔术感到惊讶。
我的问题是如何找到@ Inject'ed的给定对象的制作者?
java编译器可以为类加载器很容易找到的注释提供提示,或者必须遍历完整的类路径,加载所有类以查看它们对我来说效果非常低效,或者它是一种完全不同的方法。 / p>
诀窍是什么?
答案 0 :(得分:4)
扫描类路径以查找“bean归档”。 Bean归档是包含META-INF/beans.xml
的库。这些归档中的所有bean都会自动注册到BeanManager
,并且会解析和存储它们的注释。每当需要生产者时,都会向合格的生产者咨询bean经理
答案 1 :(得分:0)
我认为它与Seam中的工作方式相同:其中确实扫描了类路径。 impl还将搜索具有最小匹配范围的@produce,因此您可以在会话级别为登录用户创建一个产品,为匿名用户在应用程序级别创建另一个产品。
答案 2 :(得分:0)
Dunno,但这个@Inject部分由Hibernate的父亲完成,最终由SpringSource和Google重新设计/影响。也许它有点像Guice?