SpringBoot | 两种厂商开发经常用的Bean注入

目录

简介

第一种 构造函数注入

构造函数注入的优点

第二种 字段注入

字段注入的优点

两者对比

总结


简介

在Spring框架中,@Autowired 注解用于自动装配Bean

它有两种常见的使用方式:字段注入和构造函数注入。

(以最简单的服务层来说明)

第一种 构造函数注入

private final UserMapper userMapper;@Autowired
public UserServiceImpl(UserMapper userMapper) {this.userMapper = userMapper;
}

这种方式中,UserMapper通过构造函数被注入到UserServiceImpl中。

构造函数注入的优点

更好的可测试性:因为依赖项是通过构造函数传入的,所以可以很容易地在测试中使用mock对象。

更安全的依赖关系:构造函数注入确保了依赖项在类的生命周期中不会改变,这使得依赖关系更加稳定和可预测。

明确的依赖关系:构造函数参数明确地展示了类的依赖,这有助于理解类的职责和所需资源。

第二种 字段注入

@Autowired
private final UserMapper userMapper;

这种方式中,UserMapper直接通过字段上的@Autowired注解被注入。

字段注入的优点

简洁性:代码更简洁,不需要额外的setter方法或构造函数。

即时可用:依赖项在类实例化时自动注入,可以立即使用。

两者对比

尽管字段注入在某些情况下可能看起来更简洁,但构造函数注入通常被认为是更优的选择,尤其是在依赖项不是可选的情况下。构造函数注入使得依赖关系更加明显,也更易于单元测试,因为它允许你轻松地提供不同的依赖项实例。

总结

在您的具体场景中,如果UserMapper是必需的依赖项,那么使用构造函数注入(第一种方式)会更好,因为它提供了更清晰的依赖关系和更好的测试性。同时,使用final关键字确保了userMapper一旦在构造函数中被初始化后,就无法被重新赋值,这有助于保持对象的状态一致性。

(到底啦~更多内容!可关注vx公众号 : wmcode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/866714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从“钓”到“管”:EasyCVR一体化视频解决方案助力水域安全管理

一、背景 随着城市化进程的加快,越来越多的市民热衷于钓鱼活动。钓鱼活动在带来乐趣的同时,也伴随着一定的安全隐患。尤其是在一些危险水域,也经常出现垂钓者的身影,非法垂钓,这给城市管理带来了不小的阻力。传统的人…

Java传引用问题

本文将介绍 Java 中的引用传递,包括其定义、实现方式、通过引用修改原来指向的内容和通过引用修改当前引用的指向的区别 目录 1、引用传递的概念 2、引用传递的实现方式 3、传引用会发生的两种情况: 通过引用修改当前引用的指向 通过引用修改原来指…

华为OD机试2024年最新题库 JAVA C卷+D卷

目录 专栏导读华为OD机试算法题太多了,知识点繁杂,如何刷题更有效率呢? 一、逻辑分析二、数据结构1、线性表① 数组② 双指针 2、map与list3、队列4、链表5、栈6、滑动窗口7、二叉树8、并查集9、矩阵 三、算法1、基础算法① 贪心思维② 二分查…

统一视频接入平台LntonCVS视频监控平台具体功能介绍

LntonCVS视频监控平台是一款基于H5技术开发的安防视频监控解决方案,专为全球范围内不同品牌、协议及设备类型的监控产品设计。该平台提供了统一接入管理,支持标准的H5播放接口,使其他应用平台能够快速集成视频功能。无论开发环境、操作系统或…

Rufus 制作 Ubuntu 启动盘 | 开启便携的工作空间

唠唠闲话 最近服务器硬盘故障多,在修复过程中,学习了一些操作,这里做个记录。本期主要介绍 U盘启动盘的制作,以及持久化存储。 U 盘启动盘 镜像选择 Ubuntu 的版本命名遵循 “Adjective Animal” 的模式,即 “形容…

关于Wav2Lip配置实现

模型介绍 Wav2Lip是一种先进的深度学习模型,旨在将音频波形直接转换为面部动画,尤其关注于唇部动作的生成与同步。这一技术的核心在于其能够利用输入的语音信号,生成与之高度匹配的嘴唇动作,从而实现逼真的语音驱动数字人物动画效…

electron-vue自定义标题

1.在主进程background.js或者main.js中主窗口配置frame: false async function createWindow() {Menu.setApplicationMenu(null);// Create the browser window.const win new BrowserWindow({width: 1000,height: 600,resizable: false,frame: false,webPreferences: {nodeI…

VMware替换关键技术:核心业务系统中,访存密集型应用的性能优化

越来越多用户采用虚拟化、超融合以及云平台环境来承载其核心业务,核心业务的高并发对性能的要求尤为严格,在VMware替换的热潮下,原VMware用户也更为关注新平台在核心业务上的性能表现是否对标,或实现超越。深信服将通过系列解析&a…

Servlet与Servlet容器

什么是Servlet? Servlet是Java EE(现称Jakarta EE)中的一个组件,通常用于创建动态Web内容。Servlet是运行在Web服务器上的Java程序,它处理客户端的请求并生成响应。Servlet的核心功能是处理HTTP请求和响应。下面是一个servlet例…

视频编辑和视频剪辑有什么区别 视频编辑怎么旋转方向 会声会影视频制作教程下载 视频剪辑软件免费下载中文版 视频剪辑用哪个软件

如果你还分不清视频编辑与视频剪辑,请务必仔细阅读本文,了解二者之间的不同。本文还将重点介绍,旋转视频方向的三种常用方法,手把手地教你如何旋转视频方向。有关视频编辑和视频剪辑有什么区别,视频编辑怎么旋转方向的…

出海拓圈! 环保企业走出去之马来西亚水环境项目考察

中办、国办印发《关于构建现代环境治理体系的指导意见》,其中明确提出“鼓励企业参与绿色‘一带一路’建设,带动先进的环保技术、装备、产能走出去”。近年来中国积极参与全球生态环境治理,在环境资源综合管理、水旱灾害防御、固危废无害化处…

亿发:信息化建设or面子工程?究竟什么才是真正的信息化解决方案

在现代企业的竞争中,信息化建设扮演着越来越重要的角色。信息化技术不仅是企业提升管理效率、优化运营模式的利器,更是企业在市场竞争中脱颖而出的关键。然而,许多企业在推进信息化的过程中,往往容易陷入“面子工程”的误区。那么…

Windows 玩转大模型第二天:流式输出和角色扮演(提示词)(全部代码和详细部署流程)

Windows 玩转大模型第一天:大模型本地部署,调用大模型API可直接工程化应用(全部代码和详细部署流程)-CSDN博客 流式输出是指模型在生成内容时不是一次性输出全部结果,而是逐步、连续地生成输出。这种方式类似于人类在…

使用笔记之-E语言微信支付支付宝支付源代码

首先下载E语言微信支付&支付宝支付源代码 http://www.htsoft.com.cn/download/E_WeiXin_ZhiFuBao_ZhiFu.rar

【EI会议/稳定检索】2024年农业发展与机械应用国际会议(ADMA 2024)

2024 International Conference on Agricultural Development and Mechanical Applications 2024年农业发展与机械应用国际会议 【会议信息】 会议简称:ADMA 2024 大会时间:点击查看 截稿时间:点击查看 大会地点:中国武汉 会议官…

python作业一

1. #A.方法一 num int(input("请输入要打印的层数:")) for n in range(1, num1):s ""for i in range(1, n1):s f"{i}" " "print(s) #方法二: iint(input("i:")) for i in range(1,i1):s""for j i…

南方健康2024米思会:科普患教赋能医药增长闭环,千亿蓝海市场大爆发!

2024年6月25日-28日,在中国•南太湖举办的2024米思会如约而至,顺利落下帷幕,本次大会以“韧进启新局”为主题,以不懈进取的“韧劲”,立身破局,迎变启新。通过4天3夜的思想碰撞和互动交流,引领行…

【专业指南】移动硬盘坏道下的数据恢复之道

移动硬盘坏道揭秘:数据安全的隐形挑战 在数据日益成为核心资产的今天,移动硬盘作为便携存储的代名词,承载着无数用户的重要信息。然而,随着使用时间的增长和不当操作的影响,移动硬盘可能会遭遇“坏道”这一棘手问题。…

眼动追踪技术 | 眼动的分类和模型

摘要 灵长类动物用于调整中央凹位置的正常眼动,几乎都可以归结为五种基本类型的组合:扫视、平稳追踪、聚散、前庭眼震和生理性眼震(与注视相关的微小运动)。聚散运动用于将双眼聚焦于远处的目标(深度知觉)。其他运动(如适应和聚焦)指的是眼动的非位置变…

Linux权限介绍

目录 1.用户切换 2.权限 (1)权限介绍 (2)文件类型 (3)权限组成 (4)权限修改 (5)重新认识 (6)底层操作 (一&#x…