我正在关注this WildFly Java EE教程。
我对以下代码有疑问:
@Inject
@MaxNumber
private int maxNumber;
@Inject
@Random
Instance<Integer> randomNumber;
为什么在maxNumber
案例中int
注入了randomNumber
,在Instance<Integer>
案例中注明了int randomNumber
?
我已使用{{1}}测试了代码,但它似乎有效。
答案 0 :(得分:0)
在某些情况下,注射不是最方便的方法 获取上下文参考。例如,在以下情况下可能不会使用它:
- bean类型或限定符在运行时动态变化,或
- 取决于部署,可能没有满足类型的bean 限定词,或
- 我们想迭代某种类型的所有bean。
因此,如果bean被标记为@Random
,那么值是部署时间依赖的,应该由Instance
包装。 Instance
是通用的,因此它需要对象类型Integer
而非原始int
。