Spring基于注解的配置:@Autowired和@Resource全面辨析+例子

Spring基于注解的配置:@Autowired和@Resource全面辨析+例子,第1张

Spring基于注解的配置:@Autowired和@Resource全面辨析+例子 注入Bean的注解

@Autowired:Spring提供的注解。@Resource:JSR-250提供的注解。(属于J2EE) 辨析

1、@Autowired这个注解属于Spring,默认按照类型配置。默认情况下要求依赖对象必须存在,如果允许为null值,可以给它的required属性为false值,这个和@Nullable这个注解比较类似。
一般都是结合@Qualifier注解一起使用‍♀️

    @Autowired
    @Qualifier(value = "dog2")
    private Dog dog;
    @Autowired(required=false)
    private Cat cat;

@Autowried先通过bytype,如果发现相同类型的cat/dog(无所谓,总之就是有一样的类型),然后通过byName,发现了id=cat/dog,装配成功,如果没有id=cat,失败,然后再通过qualifier来指定

2、@Resource这个注解属于J2EE,默认按照名称进行装配,名称通过name属性进行指定。如果没有指定name属性,那么默认就按照取字段名进行查找。如果说注解写在setter方法上,那么就默认按照属性名进行装配噢。当找不到与名称匹配的Bean时才按照类型进行匹配。如果name属性一旦指定,那么就只会按照name里面的名称进行装配!

@Resource(name = "xxx")
private Cat xxx;

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5717878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-18

发表评论

登录后才能评论

评论列表(0条)

保存