SpringBoot的依赖注入
发表于|更新于|技术博客
|总字数:496|阅读时长:1分钟|浏览量:
参考博客: @Autowried和@Resource区别
参考博客:SpringBoot依赖注入
Autowired
- 默认注入方式
byType
根据类型匹配; - 当多个实现时,则通过
byName
注入; - 通过配合@Qualifier注解显式指定name,指明具体使用的实现类;
Resource
- 默认通过
byName
注入,没有匹配则通过byType
注入;
重要属性 name
和 type
name
和type
用来显式指定byName
和byType
方式注入
对应4种情况
//1. 默认方式:byName |
报错情况
- 未指定name属性、未指定type属性:
- 默认通过byName,若匹配失败者通过byType方式注入
- 指定name属性:
- 将变量名在IOC容器中id进行匹配,匹配失败则报错
- 指定type属性:
- 将类型在IOC容器中进行匹配,匹配不到或匹配多个则报错
- 指定name属性和type属性:
- 在IOC容器中匹配,名字和类型同时匹配则成功,否则失败
Qualifier和Autowired
Qualifier和Autowired配合使用,指定bean的名称
Service、Controller、Respository
标记类是Service层类,Controller层类,数据存储层的类,spring扫描注解配置时,会标记这些类要生成bean。
Component
是一种泛指,标记类是组件,spring扫描注解配置时,会标记这些类要生成bean。
附录备注
SpringBoot的包未被扫描到问题解决
- 确认
Application
的入口类在目录位置最顶层,扫描规则从上往下。(主入口类:org.xx.com
; 其他类:org.xx.com.dao/controller/model/...
) - 在springBoot的启动入口类上使用注解
@ComponentScan
注解,配置需要扫描的包。(例如:@ComponentScan(basePackages={"org.xx.com.conf"})
)
不能对static
静态变量注入
从配置文件*.yml获取参数给变量赋值
|
文章作者: MUMU
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 blog.wo0ow.com!