目录
介绍
第一个构造函数注入
构造函数注入的优点
第二种场注入
现场注入的优点
比较两者
总结
简介
Spring 框架使用@Autowired 注释自动连接bean。
有两种常见用途:字段注入和构造函数注入。
(我会用最简单的服务层来解释)
第一种构造函数注入
私有最终UserMapper userMapper;
@Autowired
公共UserServiceImpl(UserMapper userMapper) {
this.userMapper=userMapper;
}
这样UserMapper就通过构造函数注入到了UserServiceImpl中。
构造函数注入的优点
改进的可测试性:依赖关系通过构造函数传递,使得在测试中使用模拟对象变得容易。
更安全的依赖关系:构造函数注入可确保依赖关系在类的生命周期内不会更改,从而使依赖关系更加稳定和可预测。
显式依赖关系:构造函数参数清楚地指示类依赖关系,并帮助您了解类的职责和所需的资源。
第二种字段注入
@Autowired
私有最终UserMapper userMapper;
这种方法直接通过字段的@Autowired注释注入UserMapper。
字段注入的优点
简单:代码更简单,不需要额外的setter方法或构造函数。
可供使用:当类实例化并可供使用时,依赖项会自动注入。
两者对比
虽然在某些情况下字段注入可能看起来更干净,但构造函数注入通常被认为是更好的选择,特别是当依赖项不可选时。构造函数注入允许您轻松提供依赖项的不同实例,使依赖项更清晰且更容易进行单元测试。
总结
在某些场景下,如果UserMapper是必需的依赖项,我们建议使用构造函数注入(第一种方法)。这使得依赖关系更加清晰并且更容易测试。同时,使用final关键字可以确保userMapper一旦在构造函数中初始化后就不能被重新赋值,这有助于保持对象的一致状态。
(就这些啦~更多内容敬请关注!可关注vx公众号: wmcode)
以上关于#SpringBoot bean注入的信息是两家厂商开发中常用的,相关信息请参考官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93201.html