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

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

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

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

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

    谢谢
    Ouyangan
        8
    Ouyangan  
       2016 年 3 月 17 日
    @Autowire 注解在乘员变量可以直接省略 set 方法,两种达到的效果是相同的.
    specita
        9
    specita  
       2016 年 3 月 17 日
    是等价的吧,两种写法而已
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2633 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 01:49 · PVG 09:49 · LAX 17:49 · JFK 20:49
    ♥ Do have faith in what you're doing.