zoukankan      html  css  js  c++  java
  • 注解@Resource与@Autowired的区别

    https://blog.csdn.net/balsamspear/article/details/87936936

     
    注意:Spring容器以name为key储存bean!这里的name可以指定,否则取首字母小写的类名。有相同的就报异常:BeanDefinitionStoreException!

    @Resource
    @Resource有两个常用属性name、type,所以分4种情况

    指定name和type:通过name找到唯一的bean,找不到抛出异常;如果type和字段类型不一致,也会抛出异常
    指定name:通过name找到唯一的bean,找不到抛出异常
    指定type:通过tpye找到唯一的bean,如果不唯一,则抛出异常:NoUniqueBeanDefinitionException
    都不指定:通过字段名作为key去查找,找到则赋值;找不到则再通过字段类型去查找,如果不唯一,则抛出异常:NoUniqueBeanDefinitionException
    @Autowired
    @Autowired只有一个属性required,默认值为true,为true时,找不到就抛异常,为false时,找不到就赋值为null

    @Autowired按类型查找,如果该类型的bean不唯一,则抛出异常;可通过组合注解解决@Autowired()@Qualifier("baseDao")

    相同点
    Spring都支持
    都可以作用在字段和setter方法上
    不同点
    Resource是JDK提供的,而Autowired是Spring提供的
    Resource不允许找不到bean的情况,而Autowired允许(@Autowired(required = false))
    指定name的方式不一样,@Resource(name = "baseDao"),@Autowired()@Qualifier("baseDao")
    Resource默认通过name查找,而Autowired默认通过type查找
    使用哪个?
    都差不多,哈哈,喜欢哪个用哪个_


    ———————————————— 
    原文链接:https://blog.csdn.net/balsamspear/article/details/87936936

  • 相关阅读:
    从B树、B+树、B*树谈到R 树
    平衡二叉树、B树、B+树、B*树
    数据库事务和四种隔离级别
    python 安装surprise库解决 c++tools错误问题
    python的sorted函数
    爬虫出现gbk错误
    Windows下Python安装numpy+mkl,Scipy和statsmodels
    Flask--框架及路由
    flask常见面试题
    RE正则表达式
  • 原文地址:https://www.cnblogs.com/kelelipeng/p/12744297.html
Copyright © 2011-2022 走看看