|
默认注入类型 | 多个同类型Bean | 注入失败 | 依赖 | 使用目标(@Target) |
@AutoWired | 通过type |
默认首先安装属性名称进行注入 结合@Qualifier注解(value属性)设置注入的Bean 或通过@Primary注解优先选择某个Bean,优先级低于@Qualifier |
可以通过required设置为false忽略 | Spring |
CONSTRUCTOR, METHOD, PARAMETER, FIELD, ANNOTATION_TYPE |
@Resource | 通过bean名称 | 通过设置name属性指定Bean,不识别@Primary | 报错且不可忽略 | javax |
TYPE, FIELD, METHOD |
@Inject | 通过bean名称 | 没有属性,识别@Primary | 报错且不可忽略 | javax,需手动导入 |
METHOD, CONSTRUCTOR, FIELD |
通过bean名称注入时,如果是@Component,@Service,@Repository注解,默认按首字母小写类名称匹配
补充:
@AutoWired使用:
- CONSTRUCTOR:用于构造时,可用于函数声明或参数上
- METHOD:set函数时用于函数声明,用于参数上该方法不会执行;@Bean函数时用于函数声明或参数上均可
- PARAMETER:见以上两种用法
- FIELD:常用用法
- 另外,@AutoWired可以用于数组赋值,比如:DemoService有两个实现类,DemoServiceImpl1和DemoServiceImpl2,可以在参数或函数声明上使用@AutoWired注解后,参数中用 DemoService[] 接收bean对象,可通过@Order注解控制数组中实现对象的顺序
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/206155.html