SpringBoot中的自动注入方式

 更新时间:2024年03月27日 11:25:38   作者:汪冠州·  
这篇文章主要介绍了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 真的不会很冗余吗?

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

最后

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

相关文章

  • MyBatis实现简单的数据表分月存储

    MyBatis实现简单的数据表分月存储

    本文主要介绍了MyBatis实现简单的数据表分月存储,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Java利用POI实现导入导出Excel表格示例代码

    Java利用POI实现导入导出Excel表格示例代码

    最近工作中遇到一个需求,是需要导出数据到Excel表格里,所以写个Demo测试一下,还是比较简单的,现在分享给大家,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-10-10
  • Java中HashMap里面key为null存放到哪

    Java中HashMap里面key为null存放到哪

    这篇文章主要介绍了Java中HashMap里面key为null存放到哪,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • 解决netty中spring对象注入失败的问题

    解决netty中spring对象注入失败的问题

    这篇文章主要介绍了解决netty中spring对象注入失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • springboot配置内存数据库H2教程详解

    springboot配置内存数据库H2教程详解

    这篇文章主要介绍了springboot配置内存数据库H2的详细教程,需要的朋友可以参考下
    2017-07-07
  • Java中ConcurrentHashMap和Hashtable的区别

    Java中ConcurrentHashMap和Hashtable的区别

    ConcurrentHashMap 和 Hashtable 都是用于在Java中实现线程安全的哈希表数据结构的类,但它们有很多区别,本文就来详细的介绍一下,感兴趣的可以了解一下
    2023-10-10
  • Java基础之Stream流原理与用法详解

    Java基础之Stream流原理与用法详解

    从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式。本文就来为大家详细讲讲Stream流原理与用法
    2022-08-08
  • SpringBoot日志配置操作全面介绍

    SpringBoot日志配置操作全面介绍

    日志,通常不会在需求阶段作为一个功能单独提出来,也不会在产品方案中看到它的细节。但是,这丝毫不影响它在任何一个系统中的重要的地位,这篇文章主要介绍了SpringBoot日志配置
    2022-10-10
  • Java中API的使用方法详情

    Java中API的使用方法详情

    这篇文章主要介绍了Java中API的使用方法详情,指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可,我们可以通过帮助文档来学习这些API如何使用,需要的朋友可以参考下
    2022-04-04
  • Java如何调用Matlab程序

    Java如何调用Matlab程序

    这篇文章主要介绍了Java如何调用Matlab程序的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09

最新评论