Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot实体类中的常用注解

SpringBoot实体类中的常用注解

原创
作者头像
Java学术趴
发布于 2022-06-26 13:19:51
发布于 2022-06-26 13:19:51
4.1K00
代码可运行
举报
文章被收录于专栏:Java全栈·Java全栈·
运行总次数:0
代码可运行

👨‍🎓作者:Java学术趴 🏦仓库:GithubGitee ✏️博客:CSDN掘金InfoQ云+社区 🚫特别声明:原创不易,未经授权不得转载或抄袭,如需转载可联系小编授权。 🙏版权声明:文章里的部分文字或者图片来自于互联网以及百度百科,如有侵权请尽快联系小编。

☠️每日毒鸡汤:这个社会是存在不公平的,不要抱怨,因为没有用!人总是在反省中进步的!

👋大家好!我是你们的老朋友Java学术趴

2. SpringBoot实体类中的注解

2.1 lombok中的注解

2.1.1 @Getter/@Setter

@Getter/@Setter : 注解在类上, 为类提供读写属性。

2.1.2 @ToString

@ToString : 注解在类上, 为类提供 toString() 方法。

2.1.3 @EqualsAndHashCode

@EqualsAndHashCode : 注解在类上, 为类提供 equals() 和 hashCode() 方法。

在类是继承父类的情况下,EqualsAndHashCode实则就是在比较两个对象的属性;

  • @EqualsAndHashCode(callSuper = false) 时不会比较其继承的父类的属性可能会导致错误判断;
  • @EqualsAndHashCode(callSuper = true) 时会比较其继承的父类的属性;
2.1.4 @NoArgsConstructor

@NoArgsConstructor :注解在实体类上, 为类提供无参构造方法。

2.1.5 @RequiredArgsConstructor

@RequiredArgsConstructor :注解在实体类上,提供有指定参数的构造方法。

2.1.6 @AllArgsConstructor

@AllArgsConstructor : 注解在实体类上,提供全参构造方法。

2.1.7 @NonNull

@NonNull : 注解在参数上, 如果获取到的这个参数为 null , 就会报出异常, throw new NullPointException(参数名)。 注意 :这个注解是注释在实体类的属性上,而不是实体类上。

2.1.8 @Data

@Data :@Data相当于@Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode这5个注解的合集。写这一个注解就不用写其中包含的这5个注解了。

注意:使用@Date会生成一无参构造方法,如果想在加一个有参构造方法,需要添加 @AllArgsConstructor 注解。

2.1.9 @Builder

@Builder : 注解在实体类上, 为类提供一个内部的 Builder。

2.1.10 @Synchronized

@Synchronized : 注解在方法上, 为方法提供同步锁。 注意:这个是注解在方法上,而不是类上。

2.1.11 @Log4j

@Log4j : 注解在各个层,提供一个属性名为 log 的 log4j 的日志对象。之后就可以在任何地方直接使用log.info()打印日志。

以前使用打印日志,必须先创建一个打印日志的Logger对象,调用Logger对象中的info()方法进行打印。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private final Logger logger = LoggerFactory.getLogger(当前类名.class);
logger.info("方法被触发了");

加入了@Log4j注解之后,直接使用 log.info() 方法打印日志信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log.info("方法被触发了");
2.1.12 @Slf4j

@Slf4j : 注解在各个层,提供一个属性名为 log 的 Slf4j 的日志对象。他的用法和上面的@Log4一样。

2.1.13 @Accessors

@Accessors : Accessor的中文含义是存取器。这个注解是针对实体类中的 getter与setter方法而言的。

包含的属性:

fluent属性:参数值为true/false

  • 默认为false,当设置为true时,表示生成的setter和getter方法没有前缀set和get,且setter方法返回的是当前对象。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Data
@Accessors(fluent = true)
public class Person {
    private int id;
    private String name;
    
    // 生成的getter和setter方法如下,方法体略
    // getter省略了get
    public int id() {}
    // setter省略了set,并且返回值是:Person对象
    public Person id(int id) {}
 
    public String name() {}
    public Person name(String name) {}
}
  • getter方法不是getId(){},而是id(){};
  • setter方法不是void setId(){},而是Person id(int id){}

chain属性:参数值为true/false

  • 默认为false (注:但是当fluent为true时,其默认为true) ,当为false的时候,生成的setter方法是void类型;如果设置为true生成的setter方法返回this(当前对象)。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Data
@Accessors(chain = true)
public class Person {
    private int id;
    private String name;
    
    // 生成的setter方法如下,方法体略
    public Person setId(int id) {}
    public Person setName(String name) {}
}

这样写的好处:

  • 以前实体类的setter()方法返回值是:void。当给实体类中的多个参数赋值的时候必须分开写,很麻烦。 Person.setName("张三"); Person.setAge(20);
  • 使用 @Accessors(chain = true) 之后,setter()方法的返回值是该实例对象,所以此时可以连续调用setter() Person.setName("张三").setAge(20);

prefix属性:参数为String类型

  • 可以指定前缀,生成getter和setter方法时会去掉指定的前缀(遵守驼峰命名)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Data
@Accessors(prefix = "zqr")
class Person {
    private int zqrId;
    private String zqrName;
 
    // 生成的getter和setter方法如下,方法体略
    public int getId() {}
    public void setId(int id) {}
 
    public String getName() {}
    public void setName(String name) {}
}

相当于字符串截取功能,在生成getter和setter方法的时候,会自动截取去除指定前缀,然后加上get与set;

如上代码,生成的不是getZqrId(),而是getId()。遵守驼峰命名规则。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
全志T3 Linux显示驱动分析
        全志T3处理器的显示框架是基于标准Linux的帧缓冲架构,其结构如图 1.1所示。显示控制器DE的驱动架构如图 1.2所示,包括屏蔽差异的显示管理抽象层,以及显示图层驱动、显示设备驱动、背光驱动、enhance驱动和capture驱动。
py3study
2020/01/06
2.8K0
全志T3 Linux显示驱动分析
全志 Tina Linux LCD显示屏调试指南 支持MIPI DSI RGB LVDS I8080 SPI等接口,开发板支持百问网T113 D1-H哪吒 DongshanPI-D1s V853
素时钟不超过180MHz 都支持。或者两个串行RGB 接口,串行RGB 的最高分辨率最大不超过800*480@60
韦东山
2022/12/28
5.5K0
全志 Tina Linux LCD显示屏调试指南 支持MIPI DSI RGB LVDS I8080 SPI等接口,开发板支持百问网T113 D1-H哪吒 DongshanPI-D1s V853
全志R128基础组件开发——显示与屏幕驱动①
RTOS 提供了一套完整的屏幕驱动,支持 RGB, i8080, SPI, DBI 格式的屏幕。
阿志小管家
2024/02/02
5840
全志R128基础组件开发——显示与屏幕驱动①
使用基于全志D1-H的LicheeRV的 86 Panel 与 Tina BSP 实现 RGB 与 SPI 双屏显示
Tina 提供了2种 SPI TFT 显示屏的驱动方式。第一种是官方推荐的 fbdev 方式,使用 Framebuffer implementaion without display hardware of AW 进行 SPI屏幕的驱动。另外一种是使用 fbtft 进行 SPI 屏幕驱动。 fbdev 方式由于 pinctrl 在新内核中调用方式出现修改,所以暂时无法使用。修改难度较大。fbtft 虽然官方wiki表明不建议在 Linux 5.4 中使用,但是其实也是可以使用的,只需要修改一下 GPIO 的注册方式就行。
阿志小管家
2024/02/02
3240
使用基于全志D1-H的LicheeRV的 86 Panel 与 Tina BSP 实现 RGB 与 SPI 双屏显示
整理一些全志 D1 / D1s 的 DisplayEngine / LCD / HDMI 常用骚操作
参考: 全志显示量产问题快速排查指南.pdf 参考: D1_Tina_Linux_Display_开发指南.pdf
阿志小管家
2024/02/02
3320
全志R128应用开发案例——SPI 驱动 TFT LCD 屏
我们使用的开发板是 R128-Devkit,需要开发 C906 核心的应用程序,所以载入方案选择 r128s2_module_c906
阿志小管家
2024/02/02
2510
全志R128应用开发案例——SPI 驱动 TFT LCD 屏
全志 Tina Linux 系统资源配置 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板
Tina Linux SDK的根目录下,执行make menuconfig命令可进入Tina Linux的配置界面。
韦东山
2022/12/28
9.4K0
全志 Tina Linux 系统资源配置 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板
Tina_Linux量产测试使用指南_new
• 介绍量产配置方法; • 介绍量产测试环境搭建流程; • 介绍如何使用dragonMAT 软件; • 方便开发人员按照说明进行量产环境的搭建。
韦东山
2023/03/01
1K0
Tina_Linux量产测试使用指南_new
Linux TWI开发指南
介绍 Sunxi 平台上 TWI 驱动接口与调试方法,为 TWI 模块开发提供参考。
韦东山
2023/02/25
2.6K0
Linux TWI开发指南
【i.MX6ULL】驱动开发11——LCD驱动实践
之前在Linux系统移植时提到过LCD驱动,本篇来看下Linux设备树如何配置LCD驱动。
xxpcb
2021/12/27
1.7K0
【i.MX6ULL】驱动开发11——LCD驱动实践
Linux ADF(Atomic Display Framework)浅析---概述
因为工作关系,最近有涉及到ADF(Atomic Display Framework)相关的内容,部分内容来自互联网
233333
2020/07/20
1.7K0
Linux ADF(Atomic Display Framework)浅析---概述
Linux SID 开发指南
介绍Linux 内核中基于Sunxi 硬件平台的SID 模块驱动的详细设计,为软件编码和维护提供基 础。
韦东山
2023/02/24
1.2K0
Linux SID 开发指南
全志R128 SDK HAL 模块开发指南——G2D
G2D 驱动主要实现图像旋转/数据格式/颜色空间转换, 以及图层合成功能(包括包括alpha、colorkey、rotate、mirror、rop、maskblt) 等图形加速功能。
阿志小管家
2024/04/02
4240
全志R128 SDK HAL 模块开发指南——G2D
D1-H哪吒 设置hdmi分辨率
后,屏幕只显示了大概一半的屏。怎么设置显示全屏呀。 也就是怎么设置分辨率屏幕信息。 另外能解释以下param参数信息吗?
阿志小管家
2024/02/02
1570
Linux U-Boot 开发指南
介绍 U-Boot 的编译打包、基本配置、常用命令的使用、基本调试方法等, 为 U-BOOT 的移植及应用开发提供了基础。
韦东山
2023/02/25
4.7K0
Linux U-Boot 开发指南
全志R128基础组件开发——显示与屏幕驱动②
Lcd HV panel Interface, 这个参数只有在 lcd_if=0 时才有效。定义 RGB 同步屏下的几种接口类型,设置相应值的对应含义为:
阿志小管家
2024/02/02
3120
全志R128基础组件开发——显示与屏幕驱动②
Tina-SDK开发
Tina-SDKV2.0源码网盘链接:https://pan.baidu.com/s/13uKlqDXImmMl9cgKc41tZg?pwd=qcw7
韦东山
2024/08/24
4400
Tina-SDK开发
Linux standby 开发指南
• 休眠唤醒指系统进入低功耗和退出低功耗模式,一般称之为 Standby。standby 分为 super standby 和 normal standby,区别是 cpu 是否掉电。
韦东山
2023/02/25
1.7K0
Linux standby 开发指南
Tina Linux Camera开发指南
目前Tina 系统的各平台camera 硬件接口、linux 内核版本以及camera 驱动框架如下表所示:
韦东山
2023/02/25
4.8K0
Tina Linux Camera开发指南
全志D1-H 双屏异显第一弹来啦 D1同时支持两个屏幕,一边做UI交互,一边播放视频
1文档中有功能:双屏同显!具体操作见文档:https://d1.docs.aw-ol.com/source/3_getimg/ 双屏同显测试固件:https://www.aw-ol.com/downloads/resources/38
阿志小管家
2024/02/02
2690
全志D1-H 双屏异显第一弹来啦 D1同时支持两个屏幕,一边做UI交互,一边播放视频
推荐阅读
相关推荐
全志T3 Linux显示驱动分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档