面试题:autowired和resource有什么区别(百度面试题)
一、@Resource
@Resource
默认是按照名称来装配注入的,只有当找不到与名称匹配的 Bean
才会按照类型来装配注入;@Resource
装配顺序:
- 如果同时指定了
name
和type
,则从Spring
上下文中找到唯一匹配的Bean
进行装配,找不到则抛出异常 - 如果指定了
name
,则从上下文中查找名称(id)匹配的Bean
进行装配,找不到则抛出异常 - 如果指定了
type
,则从上下文中找到类型匹配的唯一Bean
进行装配,找不到或者找到多个,都会抛出异常 - 如果既没有指定
name
,又没有指定type
,则自动按照byName
方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
二、@Autowired
@Autowired
默认按类型装配(这个注解是属业 Spring
的),默认情况下必须要求依赖对象必须存在,如果要允许 null
值,可以设置它的 required
属性为 false
,如:@Autowired(required=false)
,如果我们想使用名称装配可以结合 @Qualifier
注解进行使用
Java面试的完整博客目录如下:Java笔试面试目录
转载请标明出处,原文地址:https://blog.csdn.net/weixin_41835916 如果觉得本文对您有帮助,请点击顶支持一下,您的支持是我写作最大的动力,谢谢。