利用Lombok编写优雅的spring依赖注入代码,去掉繁人的@Autowired
大家平时使用spring依赖注入,都是怎么写的?
@Service public class OrderService { @Autowired private UserService userService; }
是不是很熟悉的感觉?但是呢 如果你用IDEA的话呢,它会提示你
Field injection is not recommended
大概就是spring 不推荐建使用这个方式。原因网上很多啦:https://blog.csdn.net/github_38222176/article/details/79506392
下面就是spring推荐的写法:
@Service public class OrderService { private final UserService userService; @Autowired public OrderService(UserService userService) { this.userService = userService; } }
若是注入的类太多的话呢,看起来挺繁琐的。最近偶然在网上发现使用Lombok可以写出简洁的代码:
后发现该方法有几率导致Spring循环引用问题,所以还是不推荐使用
@Service @RequiredArgsConstructor(onConstructor = @__(@Autowired)) public class OrderService { //这里必须是final,若不使用final,用@NotNull注解也是可以的 private final UserService userService; }
这样写实际上编译后和spring推荐的写法是一样的哦,是不是很简洁
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
记Structured Streaming 2.3.1的OOM排查过程
记Structured Streaming 2.3.1的OOM排查过程 缘起 最近在使用Structured Streaming开发一套自助配置SQL的来生成流式作业的平台,在测试的过程中发现有些作业长时间运行后会有Executor端的OOM,起初以为是代码的问题,几经review和重构代码,都没有解决,无奈开始了这次OOM的问题排查之路。 干货 出现的问题 Structured Streaming 作业长时间运行后,会出现如下问题 可以看到spark为我们提供的统计信息,Task的GC时间占到了Task执行时间的70%,起初以为配置的内存不够,但是反复调大内存均出现此问题。 出现这种问题之后,紧接着就会出现Executor和Driver间心跳异常,或者Executor假死的状态,一般出现这类假死、jvm没有响应的问题大都可初步判断为是因为Jvm的Full GC而造成的Stop the World现象。 紧接着再过一段时间之后,在Executor的日志中会出现java.lang.OutOfMemoryError: Java heap space这类异常,导致Executor挂掉。 综上...
- 下一篇
在EOS区块链上使用EOSJS和scatter开发dApp
由于我一直在深入研究EOS dApp的开发,我看了不少好文章。在这里,我汇总了下做一些研究后得到的所有知识。在本文中,我将解释如何使用EOSJS和scatter。我假设你对智能合约以及如何在EOS区块链上部署它们有基本的了解,因为我将在本文中跳过该部分。 我们在构建什么? 我们正在构建一个简单的todo dApp。我们将为CRUD(创建,读取,更新和删除)操作编写智能合约,并将使用EOSJS和scatter与已部署的合同进行交互。CRUD操作包括创建,完成,删除和获取待办事项。我们将使用Jungle Testnet来部署我们的智能合约。 必备知识 EOS EOSJS Scatter Scatter设置 Scatter用于为区块链签署交易,并在不泄露密钥的情况下向应用程序提供个人信息。要设置Scatter钱包,请关注这个视频。在Scatter设置中,必须在网络中添加Jungle testnet,其中包含以下详细信息: Name: Jungle Testnet Domain or IP: dev.cryptolions.io // It might be changed, so chec...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- Red5直播服务器,属于Java语言的直播服务器