欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 旅游 > SpringBoot | 两种厂商开发经常用的Bean注入

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

2024/10/24 1:31:27 来源:https://blog.csdn.net/weixin_56861179/article/details/140212969  浏览:    关键词: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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com