博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring使用注解装配之@Autowired
阅读量:7242 次
发布时间:2019-06-29

本文共 793 字,大约阅读时间需要 2 分钟。

  hot3.png

1:可选的自动装配 @Autowired具有强契约特征,其标注的属性或者参数必须是可装配的 如果没有bean可装配,那么自动装配会失败,抛出NoSuchBeanDefinitionException

当然,属性并不一定非要装配。null值也是可接受的。这样的话通过设置@Autowired(required=false)来配置自动装配时可选的 如果没有找到对应的Bean,那么相应的属性就是null,不会报错

当@Autowired标注在构造器上时,只能由一个的requeired属性为true,其他的只能是false,而且当标注多个构造器的时候。Spring会挑选满足条件的构造器中入参最多的那一个

2:限定歧义性的依赖 当满足条件的bean大于两个的时候,@Autowired并不知道选择哪一个。这个时候我们可以使用:@Qualifier(“name”)来明确的指定Id为name的Bean,Qualifiler这样就可以真正的缩小挑选范围。

事实上可以自定义限定器的注解(Qualifier)

@Target({ElementType.FIELD,ElementType.PARAMETER,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Qualifierpublic @interface sudojs(){}

这样既可以用@sudojs来限定范围了,如果还嫌不够,继续定义,接续缩小范围

但是凡事有个度,@Autowired注解本身是减少XML文件配置的一种替代方式。但是使用它的类会引入对Spring的特定依赖(即便这种依赖只是一个注解)

那么我们可以使用Java依赖注入标准(JSR-330)中 @Inject

转载于:https://my.oschina.net/sudojs/blog/208718

你可能感兴趣的文章
dpdk-lvs的一次线上故障排查报告
查看>>
记一次ios系统select标签第一个选项不能被选中的bug
查看>>
即构科技金健忠:回顾20年音视频技术演进
查看>>
tcpkill工作原理分析
查看>>
Kubernetes性能测试实践
查看>>
使用有限状态机原理实现英文分词
查看>>
阿里十年,只剩下这套Java开发体系了
查看>>
你的文案老是错别字,能不能改改?
查看>>
netty源码分析之服务端启动全解析
查看>>
js数组API--温故知新
查看>>
深入理解苹果系统(Unicode)字符串的排序方法
查看>>
为什么在Go语言中要慎用interface{}
查看>>
iOS CocoaPods简介及基本使用
查看>>
企业级无线渗透之PEAP
查看>>
Python安全编码指南
查看>>
Android 基于Zxing扫码实现(三)、从相册选取二维码
查看>>
自动化之旅--Appium
查看>>
react 第一个组件 “hello world!”
查看>>
Servlet
查看>>
前端常用类库资源
查看>>