• Autowried注解和Resource注解的区别


    1.概述

    在使用Spring框架的过程中, 依赖注入是必须的, 大多时候会使用Autowried注解来进行依赖注入, 但是也可以使用Resource注解来实现注入.

    那么两个注解有什么区别呢? 它们又是如何使用的呢?

    2.Autowried

    用来装配bean, 可作用于字段上, 也可以作用于setter方法上.

    是Spring的注解.

    默认情况下要求对象必须存在, 它要求依赖对象必须存在. 若允许null值, 可以设置它的required为false.

    默认按照类型进行装配注入. 如果想按照名称进行装配的话, 需要与Qualifer注解搭配使用.

    @Autowried
    @Qualifier("admin")
    private AdminDAO adminDAO;
    

    3.Resource

    用来装配bean, 可作用于字段上, 也可以作用于setter方法上.

    是J2EE的注解.

    默认按照名称来装配注入, 只有找不到与名称匹配的bean才会按照类型来注入.

    它有两个属性是比较重要的:

    • name: Spring将name的属性值解析为bean的名称, 使用byName的自动注入策略
    • type: Spring将type的属性值解析为bean的类型, 使用byType的自动注入策略
      如果既不指定name属性又不指定type属性, Spring这时通过反射机制使用byName自动注入策略

    Resource注解的装配顺序

    • 如果同时指定了name属性和type属性, 那么Spring将从容器中找唯一匹配的bean进行装配, 找不到则抛出异常
    • 如果指定了name属性值, 则从容器中查找名称匹配的bean进行装配, 找不到则抛出异常
    • 如果指定了type属性值, 则从容器中查找类型匹配的唯一的bean进行装配, 找不到或者找到多个都会抛出异常
    • 如果都不指定, 则会自动按照byName方式进行装配, 如果没有匹配, 则回退一个原始类型进行匹配, 如果匹配则自动装配

    4.总结

    Resource注解是J2EE提供的, 而Autowried注解是Spring提供的, 如果想减少对Spring的依赖建议使用Resource注解.

    其实也没必要, Spring框架目前大部分应用都使用着, 使用Spring的注解也没什么不好.

    不过我个人喜欢使用Resource注解.

  • 相关阅读:
    诸葛亮的后半生:狗笼子里挥舞丈八蛇矛
    一句话摘录
    【书摘】The Joshua tree epiphany
    玩具程序:bigInt
    旅行的力量
    记忆的力量
    快的力量
    Windbg学习笔记【4】
    戴尔笔记本win8全新安装
    悟透JavaScript
  • 原文地址:https://www.cnblogs.com/wuqinglong/p/10155280.html
Copyright © 2020-2023  润新知