美文网首页程序员Spring Boot
spring中autowired和resource注解的区别

spring中autowired和resource注解的区别

作者: OnyWang | 来源:发表于2018-01-10 16:33 被阅读196次

    autowired和resource注解都可以将bean注入。
    最大的不同之处在于:

    • autowired:
    1. 该注解由spring提供。
    2. 该注解通过类型来查找bean。
    • resource
    1. 该注解由java提供。
    2. 该注解通过name来查找bean。

    resource注解举例:

    @Resource
    Test t;
    

    该bean注入过程如下:
    先查找name为test的bean,如果查询不到,则会查询类型为Test的bean。
    假如指定了name,代码如下:

    @Resource(name="test123")
    Test t;
    

    只要此处指定了name属性,那么只会查询name为test123的bean,查询不到即查询不到,报找不到bean的错误。

    autowired注解举例

    @Autowired
    Test t;
    

    查找类型为Test的bean,查询不到就会报错。
    如果想要指定使用name查询,则需要配合Qualifier注解使用,配置如下:

    @Autowired @Qualifier("baseDao")
    Test t;
    

    首先查询类型为Test的bean,如果查询不到则会查询name为baseDao的bean。还查询不到,就会报错了。
    另外,Autowired注解可以指定是否为null,使用required=false属性来指定。此时,该bean即使为null也不会报错。配置如下:

    @Autowired(required=false) @Qualifier("baseDao")
    Test t;
    

    相关文章

      网友评论

        本文标题:spring中autowired和resource注解的区别

        本文链接:https://www.haomeiwen.com/subject/fkbonxtx.html