文档包含以下段落。
“与@Autowired一样,可以在类级别,字段级别,方法级别和构造函数参数级别使用@Inject。”
如果我没有错,我知道@Inject注释可以使用字段级,方法级和构造函数 - 参数级,不能用于类级。
注入注释源代码:
@Target({ METHOD, CONSTRUCTOR, FIELD })
@Retention(RUNTIME)
@Documented
public @interface Inject {}
是真的吗?
答案 0 :(得分:2)
对我来说,它们几乎是等价的,@Inject
是自Java EE 6以及@Autowired
部分Spring框架引入的CDI的一部分。
@Autowired
接口看起来与@Inject具有相同的目标:
@Target(value={CONSTRUCTOR,FIELD,METHOD})
@Retention(value=RUNTIME)
@Documented
public @interface Autowired
我认为这是Spring documentation章5.11.1中的一个小错误,因为我从未在类级别上看到任何@Autowired
注释。
This link显示了每种方法的差异和局限性。