V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
liky88
V2EX  ›  Java

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

  •  1
     
  •   liky88 · 2016-03-16 21:47:40 +08:00 · 5017 次点击
    这是一个创建于 2969 天前的主题,其中的信息可能已经有所发展或是发生改变。
    9 条回复    2016-03-17 10:39:12 +08:00
    raysmond
        1
    raysmond  
       2016-03-16 22:06:15 +08:00
    写在变量上初始化地时候就要全部注入,这样有可能初始化时间较长。
    写在方法上,则是调用方法的时候才注入。

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

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

    谢谢
    Ouyangan
        8
    Ouyangan  
       2016-03-17 00:03:59 +08:00
    @Autowire 注解在乘员变量可以直接省略 set 方法,两种达到的效果是相同的.
    specita
        9
    specita  
       2016-03-17 10:39:12 +08:00
    是等价的吧,两种写法而已
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2138 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:42 · PVG 19:42 · LAX 04:42 · JFK 07:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.