在Spring中,@Autowired注解是否只涉及一个对象?@Autowired是否只涉及一个对象?
@Autowired
A object_a;
@Autowired
B object_b;
@Autowired
C object_c;
和
@Autowired
A object_a;
B object_b;
C object_c;
他们是同样的事情?谢谢
在Spring中,@Autowired注解是否只涉及一个对象?@Autowired是否只涉及一个对象?
@Autowired
A object_a;
@Autowired
B object_b;
@Autowired
C object_c;
和
@Autowired
A object_a;
B object_b;
C object_c;
他们是同样的事情?谢谢
在你的问题的@Autowired的情况下是指只有一个对象。你以后的陈述只会自动装载object_a;
将构造函数,字段,设置方法或配置方法标记为 由Spring的依赖注入设施自动装配。
用在你解释的方式,它的字段级注解,适用于一个领域只有
请注意,如果您使用@Autowire在春天构造函数,你可以注入多个依赖,如一个例子
@Autowired
public YourClass(A object_a, B object_b, C object_c) {
this.object_a = object_a;
this.object_b = object_b;
this.object_c = object_c;
}
@Autowire(像任何annotation)是特定于下一个语句。因此,你的例子是不一样的。
的Autowired
interface可以应用于一个构造函数,字段或方法:
@Target(value={CONSTRUCTOR,FIELD,METHOD})
关于你的评论给的例子:
@Autowired A a, B b, C c;
如果a
,b
和c
的领域,它不会编译,因为每条语句只有一个字段声明。
如果它们不是,它将不会工作,因为它们不属于授权类型。
不,他们不一样。 FieldDeclaration以分号结尾,按照JLS section 8.3。你可以写
@AutoWired A a, b, c;
,并有自动连接适用于所有三种,但很可能没有太大的意义,因为你只能有每场声明类型...
干杯,
而且如果我把对象放在同一行? '@Autowired一个object_a,B object_b,C object_c;' – Alex 2014-12-02 12:57:41
为你编译@Alex? – 2014-12-02 12:59:11
@Alex很好的问题,我没有考虑这种可能性:) – fxm 2014-12-02 13:09:28