SpringBoot中的自动注入方式
作者:汪冠州·
这篇文章主要介绍了SpringBoot中的自动注入方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
字段注入在spring 3.0 已经被官方列入为不推荐使用
项目集成:Lombok、Spring Boot
方式一:使用 [ Lombok ]的[ @RequiredArgsConstructor ]进行构造器注入
@RequiredArgsConstructor
[SpringBoot] 运行结果
注意事项 !! 该注解只会对 [final] 修饰符的字段进行注入
以下是编译以后的 .java 代码,可以看到注解帮我们生成了一个构造器,并且spring 会为构造器自动注入
总结:
final 修饰符的字段使用 lombok 可以帮助生成构造器,spring 会为构造器所有的属性注入
方式二:使用 [ Lombok ] 的 [ @Setter ] 进行注入
使用注解在生成 se方法的时候添加注入注解
@Setter(onMethod = @__(@Autowired))
注意事项 !! 不会对 [ final ] 修饰符的字段生成方法
反编译后代码
总结:
[ Lombok ] 的 [ @Setter ] 注解可以指定在生成时加入指定注解
方式三:使用 [ Lombok ] 的 [ @Setter ] 注解按字段名字注入
1、准备一个 OK 接口和两个实现类
OK 接口
实现类 1
实现类 2
调用者
@Autowired 替换为 @Resource
1、@Autowired 是按照类型查找
2、@Resource 先是按Bean名字查找,如果Bean没有名字则使用字段名字 (即变量名) 查找,都没有找到的话会按类型查找
调用结果
总结:
多个实现类可以使用@Resorce 按名字查找
思考
字段注入上 @Autowired 或者 @Resorce 真的不会很冗余吗?
或许我们应该抛弃字段注入多写一些注释在字段上面,让后来者知道为什么要注入某类去做某事。
最后
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。