zoukankan      html  css  js  c++  java
  • 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注解.

  • 相关阅读:
    业务线--node中间层做一个透传的项目
    JavaScript 字符串replace全局替换
    纯HTML和CSS实现点击切换
    css 清除一些默认的设置
    js异步请求方式
    VScode编辑器个性化配置
    webpack 解决跨域问题
    node.js连接MongoDB数据库,db.collection is not a function完美解决
    nodejs中安卓端的编码如何转换为中文
    深入理解js的变量提升和函数提升
  • 原文地址:https://www.cnblogs.com/wuqinglong/p/10155280.html
Copyright © 2011-2022 走看看