该文档包含以下段落。
“与@Autowired 一样,可以在类级别、字段级别、方法级别和构造函数参数级别使用@Inject。”
如果我没记错的话,我知道@Inject 注解可以用于字段级别、方法级别和构造函数参数级别,不能用于类级别。
注入(inject)注解源代码:
@Target({ METHOD, CONSTRUCTOR, FIELD })
@Retention(RUNTIME)
@Documented
public @interface Inject {}
这是真的吗?
最佳答案
对我来说,它们几乎是等价的,@Inject
是 CDI 的一部分从 Java EE 6 和 @Autowired
开始引入Spring 框架的一部分。@Autowired
界面看起来与@Inject 具有相同的目标:
@Target(value={CONSTRUCTOR,FIELD,METHOD})
@Retention(value=RUNTIME)
@Documented
public @interface Autowired
我认为这是 Spring documentation 中的一个小错误第 5.11.1 章,因为我从未见过
@Autowired
类级别的注释。This link显示了每种方法的差异和局限性。
关于spring - spring框架引用文档3.2.2中@Inject是否有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16019500/