在Spring中@Autowired注释只涉及一个对象吗?
@Autowired
A object_a;
@Autowired
B object_b;
@Autowired
C object_c;
和
@Autowired
A object_a;
B object_b;
C object_c;
它们是一样的吗?谢谢
答案 0 :(得分:3)
在你的问题的上下文中,@ Autowired只引用一个对象。你以后的陈述只会自动装配object_a;
标记构造函数,字段,setter方法或配置方法 由Spring的依赖注入工具自动启动。
以您解释的方式使用,它是一个字段级注释,仅适用于一个字段
请注意,如果在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;
}
答案 1 :(得分:2)
@Autowire(与任何annotation一样)特定于下一个语句。因此,您的示例并不相同。
Autowired
interface可以应用于构造函数,字段或方法:
@Target(value={CONSTRUCTOR,FIELD,METHOD})
关于您在评论中提供的示例:
@Autowired A a, B b, C c;
如果a
,b
和c
是字段,则不会编译,因为每个语句只有一个字段声明。
如果不是,则由于他们不属于授权类型而无法工作。
答案 2 :(得分:0)
不,他们不一样。根据{{3}},FieldDeclaration以分号结束。你可以写
@AutoWired A a, b, c;
并且自动装配适用于所有三个,但这可能没有多大意义,因为你只能在每个字段声明的类型...
干杯,