2

我已经使用 JSR-299 参考实现“焊接”,目的是在独立应用程序中使用它,并且我查看了文档,并惊叹于它的魔力。

我的问题是如何找到要被@Inject 的给定对象的生产者?

java编译器为类加载器很容易找到的注释生成提示,或者必须遍历完整的类路径以加载所有类以查看它们的作用,这对我来说听起来效率很低,或者它是一种完全不同的方法。

诀窍是什么?

4

3 回答 3

4

扫描类路径以查找“bean 档案”。Bean 档案是那些包含META-INF/beans.xml. 这些档案中的所有 bean 都会自动注册到BeanManager并且它们的注释被解析和存储。每当需要生产者时,都会向 bean 经理咨询合格的生产者

于 2010-04-09T05:38:25.707 回答
0

我假设它与 Seam 中的工作方式相同:确实扫描了类路径。impl 还将搜索具有最小匹配范围的 @produce,因此您可以在会话级别为登录用户生成一个产品,而另一个在应用程序级别为匿名用户生成。

于 2010-04-04T12:10:33.297 回答
0

不知道,但是这个由 Hibernate 的父亲部分完成的@Inject 最终被 SpringSource 和 Google 重新设计/影响了。也许它有点像 Guice?

于 2010-04-05T19:11:22.423 回答