zoukankan      html  css  js  c++  java
  • @Resource和@Autowirde的区别

    @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方法上
    不同点
    1.Resource是JDK提供的,而Autowired是Spring提供的
    2.Resource不允许找不到bean的情况,而Autowired允许(@Autowired(required = false))
    3.指定name的方式不一样,@Resource(name = "baseDao"),@Autowired()@Qualifier("baseDao")
    4.Resource默认通过name查找,而Autowired默认通过type查找

  • 相关阅读:
    HDU 2852 KiKi's K-Number (主席树)
    HDU 2089 不要62
    Light oj 1140 How Many Zeroes?
    Bless You Autocorrect!
    HDU 6201 transaction transaction transaction
    HDU1561 The more ,The better (树形背包Dp)
    CodeForces 607B zuma
    POJ 1651 Mulitiplication Puzzle
    CSUOJ 1952 合并石子
    Uva 1599 Ideal path
  • 原文地址:https://www.cnblogs.com/wnlsq/p/12306764.html
Copyright © 2011-2022 走看看