利用Lombok编写优雅的spring依赖注入代码,去掉繁人的@Autowired

1.引入Lombok 视频教程

https://www.projectlombok.org

2.Lombok jar 下载地址

https://plugins.jetbrains.com/plugin/6317-lombok-plugin

3.大家平时使用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可以写出简洁的代码:

@Service
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class OrderService {
//这里必须是final,若不使用final,用@NotNull注解也是可以的
private final UserService userService;

}
参考:https://blog.csdn.net/Tybyqi/article/details/82872183 

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

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

相关文章

99%与100%

一个表格可以正常的显示,也就是有所有的边框,可是打印的时候却没有右边框。相对来说这个表格比较复杂,首先他有headgroup footgroup也就是在打印的时候分页打印并显示多行表头用的,所以在css上下了一些功夫。可是上边说的问题怎么…

移植U-BOOT之裁剪和修改默认参数(易用性)启动内核,以及对uboot进行分区

今天我们来裁剪U-BOOT,使其更加易用,修改默认参数,以及制作最终修改好得补丁文件方便以后的快速移植。 那么如果想看之前的关于网卡以及flash等的移植,请点击链接查看:点击链接查看 在裁剪修改之前呢,我们…

移植U-BOOT之支持烧写YAFFS文件系统以及制作U-BOOT补丁

今天,我们来移植U-BOOT让其支持YAFFS文件系统映像的烧写,以及最后的终极目标,制作Uboot补丁,因为我们信心苦苦移植好了Uboot,如果换一个地方的或者换一台电脑之类的,我们也不想再浪费时间从头开始移植&…

PHP字符串函数大全

PHP字符串函数大全 AddSlashes: 字符串加入斜线。 bin2hex: 二进位转成十六进位。 Chop: 去除连续空白。 Chr: 返回序数值的字符。 chunk_split: 将字符串分成小段。 convert_cyr_string: 转换古斯拉夫字符串成其它字符串。 crypt: 将字符串用 DES 编码加密。 echo: 输出字符串…

SpringBoot 使用教程

SpringBoot系列一:SpringBoot入门Spring Boot基础教程 ( 五 ) :构建 RESTful API 与单元测试Spring Boot基础教程 ( 四 ) :Spring Boot 属性配置文件详解Spring Boot基础教程 ( 三 ) :使用 Cloud Studio 在线编写、调试和管理 Spr…

【数据结构学习之完全从零实现所有数据结构的代码编写之一】泛型编程简介

学习交流加 个人qq: 1126137994个人微信: liu1126137994学习交流资源分享qq群: 962535112 今天开始系统性学习数据结构内容,之前也看过大话数据结构这本书,对大多数概念以及数据结构都有一定的了解,但是就是…

javascript tabIndex属性

tabIndex 的用处很简单,就是利用tab键遍历页面的表单元素和链接,按照tabindex的大小决定顺序。虽然微不足道,但细节处见真功夫,这是任何一个WEB应用应当具备的亲用力,保证用户在没有鼠标的情况下(如WAP&…

zookeeper 安装和使用

1.Windows安装和使用zookeeper 之前整理过一篇文章《zookeeper 分布式锁服务》,本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单&#xf…

【移植Linux 3.4.2内核第一步】之简单修改

前一阵子已经将U-boot移植好了,从今天开始,我们开始移植linux内核。移植的内核为3.4.2,移植的开发板为:jz2440开发板。 想看之前移植U-boot的记录,可以查看我的博客专栏,点击链接:点击查看U-bo…

HBase 2.0版本正式发布

1.HBase 2.0版本正式发布 关于HBase版本定义 HBase从1.0.0版本开始,在版本定义上正式遵循了Semantic Versioning规范: 一个版本号,由三部分组成: MAJOR.MINOR.PATCH,关于这三部分数字的变更,定义如下&am…

前端学习(77):css中常见margin塌陷问题之解决办法

塌陷问题 当两个盒子在垂直方向上设置margin值时&#xff0c;会出现一个有趣的塌陷现象。 ①垂直并列 首先设置两个DIV,并为其制定宽高 1 1 /*HTML部分*/2 <body>3 <div class"box1">box1</div>4 <div class"box2">box2…

HBase2.0 vs HBase1.x 延时比较

hbase2.0已经正式发布&#xff0c;对比之前1.x版本&#xff0c;2.0在读写链路上做了完善的优化&#xff0c;offheap、netty rpc等&#xff0c;这里做个小测试实验对比1.x和2.0在读写上的延时情况。本测试基于特定测试环境与软件版本得到的结果&#xff0c;仅供参考。 测试介绍 …

【数据结构学习之完全从零实现所有数据结构的代码编写之二】智能指针

今天我们依然暂时不讲解数据结构里面的内容&#xff0c;我们来复习一下昨天学的模板技术用于数据结构编程的思想&#xff0c;给出一个模板技术的实例&#xff1a;智能指针的应用。喜欢看我分享的加我q:1126137994 加我共同学习交流各种技术。 为什么会引入智能指针呢&#xff…

职责链模式(Chain of Responsibility)

重要概念 1. 使多个对象都有机会处理请求&#xff0c;从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链&#xff0c;并沿着这条链传递该请求&#xff0c;直到有一个对象处理它为止。 2.请求是沿着链条传递到有一个处理点对象负责处理这个请求为止。请求者无需…

Linux网络-数据包的接收流程(基于RTL8139网卡驱动程序)

本文将介绍Linux系统中&#xff0c;基于RTL8139网卡驱动程序&#xff0c;是如何一步一步将接收到的数据包传送到内核的网络协议栈的。 下图展示了数据包&#xff08;packet&#xff09;如何进入内存&#xff0c;并被内核的网络模块开始处理&#xff1a; -----| | …

mootools

$();// 选择ID为”body_wrap“的元素$(body_wrap);.getElement();// 选择ID为”body_wrap“的元素下面的第一个链接$(body_wrap).getElement(a); or #xxx or .xxx.getElements();// 选择ID为”body_wrap“的元素下面的所有链接$(body_wrap).getElements(a); $(body_wrap).getE…

图形化界面客户端连接phoenix操作hbase

下载客户端软件 DBeaver https://dbeaver.io/download/ 选择对应系统的版本&#xff0c;我这里选择解压版windows64位 创建连接 注意&#xff1a;URL模板就不要一般是默认 选择合适的版本&#xff08;跟你服务器的版本一致&#xff09;&#xff0c;下载jar包 点击测试或完成即…

【C++深度剖析教程12】数组操作符的重载

之前写的C学习记录忘记打编号了&#xff0c;从今天开始&#xff0c;所有内容&#xff0c;记录编号&#xff0c;方便以后的查阅复习。今天学习的是C中&#xff0c;数组操作符的重载。 上一篇博文写的是介绍C中的字符串类&#xff0c;我们知道&#xff0c;C标准库中通过string类…

前端学习(80):按类型划分标签(inline)

解决font-size中间有间隙 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compat…

将应用程序安装为Windows服务

将应用程序安装为Windows服务 安装为服务的好处:不用登陆系统就可以自动启动. 微软官方对该小工具的说明&#xff1a;Installs and uninstalls executable services and assigns names to them. 显而易见&#xff0c;这个小工具是用以安装和卸载可执行的服务和指派服务名给这些…