SpringBoot中的自动注入方式

 更新时间:2024年03月27日 11:25:38   作者:汪冠州·  
这篇文章主要介绍了SpringBoot中的自动注入方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

字段注入在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 真的不会很冗余吗?

或许我们应该抛弃字段注入多写一些注释在字段上面,让后来者知道为什么要注入某类去做某事。

最后

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员之家。

相关文章

  • Spring之spring-context-indexer依赖详解

    Spring之spring-context-indexer依赖详解

    这篇文章主要介绍了Spring之spring-context-indexer依赖详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • 详解hashCode()和equals()的本质区别和联系

    详解hashCode()和equals()的本质区别和联系

    这篇文章主要介绍了详解hashCode()和equals()的本质区别和联系,本文先对两种方法作了介绍,然后对二者联系进行分析,具有一定参考价值,需要的朋友可以了解下。
    2017-09-09
  • JavaIO字符操作和对象操作示例详解

    JavaIO字符操作和对象操作示例详解

    这篇文章主要为大家介绍了JavaIO字符操作和对象操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • JAVA中Integer值的范围实例代码

    JAVA中Integer值的范围实例代码

    这篇文章主要介绍了JAVA中Integer值的范围实例代码,需要的朋友可以参考下
    2017-09-09
  • Java中的继承关系与方法覆盖

    Java中的继承关系与方法覆盖

    这篇文章主要介绍了Java中的继承关系与方法覆盖,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Mybatis查找返回Map,List集合类型的数据方式

    Mybatis查找返回Map,List集合类型的数据方式

    这篇文章主要介绍了Mybatis查找返回Map,List集合类型的数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 使用@Valid+BindingResult进行controller参数校验方式

    使用@Valid+BindingResult进行controller参数校验方式

    这篇文章主要介绍了使用@Valid+BindingResult进行controller参数校验方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java RMI详细介绍及简单实例

    Java RMI详细介绍及简单实例

    这篇文章主要介绍了Java RMI详细介绍及简单实例的相关资料,需要的朋友可以参考下
    2017-02-02
  • mybatis关于Criteria使用的小坑

    mybatis关于Criteria使用的小坑

    这篇文章主要介绍了mybatis关于Criteria使用的小坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • java-SSH2实现数据库和界面的分页

    java-SSH2实现数据库和界面的分页

    本文主要是介绍SSH2实现数据库和界面的分页的代码,分页在web应用中是经常要做的事情,实用性比较大,有需要的朋友可以来了解一下。
    2016-10-10

最新评论

?


http://www.vxiaotou.com