Java Spring 里, @Autowire 注解写在方法上和变量属性上面有什么区别?

2016-03-16 21:47:40 +08:00
 liky88
5190 次点击
所在节点    Java
9 条回复
raysmond
2016-03-16 22:06:15 +08:00
写在变量上初始化地时候就要全部注入,这样有可能初始化时间较长。
写在方法上,则是调用方法的时候才注入。

不过写在变量上很方便
liky88
2016-03-16 22:16:03 +08:00
@raysmond
写在变量上的时候,是实例化变量属性。
那写在方法上的时候是实例化什么?
saximoer
2016-03-16 22:17:15 +08:00
@liky88 他说的应该是 SET 方法上写?
Ouyangan
2016-03-16 22:21:34 +08:00
Ouyangan
2016-03-16 22:24:33 +08:00
额 ,我这里打不开,请参看 spring 文档 P59
raysmond
2016-03-16 22:30:22 +08:00
liky88
2016-03-16 22:53:11 +08:00
@raysmond @Ouyangan
我举个例子,你们看对不对.
@Autowire
public void setAuthentication(Authentication auth){
...
}
所以这个时候注解是放在方法上,是不是实例化 Authentication auth?

跟在变量上注入是等价的?
@Autowire
Authentication auth;

谢谢
Ouyangan
2016-03-17 00:03:59 +08:00
@Autowire 注解在乘员变量可以直接省略 set 方法,两种达到的效果是相同的.
specita
2016-03-17 10:39:12 +08:00
是等价的吧,两种写法而已

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/264042

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX