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

2016 年 3 月 16 日
 liky88
5782 次点击
所在节点    Java
9 条回复
raysmond
2016 年 3 月 16 日
写在变量上初始化地时候就要全部注入,这样有可能初始化时间较长。
写在方法上,则是调用方法的时候才注入。

不过写在变量上很方便
liky88
2016 年 3 月 16 日
@raysmond
写在变量上的时候,是实例化变量属性。
那写在方法上的时候是实例化什么?
saximoer
2016 年 3 月 16 日
@liky88 他说的应该是 SET 方法上写?
Ouyangan
2016 年 3 月 16 日
Ouyangan
2016 年 3 月 16 日
额 ,我这里打不开,请参看 spring 文档 P59
raysmond
2016 年 3 月 16 日
liky88
2016 年 3 月 16 日
@raysmond @Ouyangan
我举个例子,你们看对不对.
@Autowire
public void setAuthentication(Authentication auth){
...
}
所以这个时候注解是放在方法上,是不是实例化 Authentication auth?

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

谢谢
Ouyangan
2016 年 3 月 17 日
@Autowire 注解在乘员变量可以直接省略 set 方法,两种达到的效果是相同的.
specita
2016 年 3 月 17 日
是等价的吧,两种写法而已

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

https://study.congcong.us/t/264042

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

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

© 2021 V2EX