注解 @RequiredArgsConstructor与@NonNull系列注解的用法:
一、@RequiredArgsConstructor使用解释:
导入lombok包:<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.19.22</version>
</dependency>
@RequiredArgsConstructor:
生成带有必需参数的构造函数;而必需的参数是最终字段和具有约束的字段,例如@NonNull
注意几点:
1.必须声明的变量为final 2.根据构造器注入的,相当于当容器调用带有一组参数的类构造函数时,基于构造函数的 DI 就完成了,其中每个参数代表一个对其他类的依赖。基于构造方法为属性赋值,容器通过调用类的构造方法将其进行依赖注入使用当我们需要注入 Bean的时候可以直接在类名称上使用。代替了Autowrited注解
生成带有必需参数的构造函数:
构造方法作用就是对类进行初始化。 如果你没有定议任何构造方法的形式,程式会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法: 构造方法必须满足以下语法规则:(1) 方法名必须与类名相同。(2)不要声明返回类型。(3)不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承,所以用final和abstract修饰没有意义。
实例:
@RestController
@RequestMapping("/com/notice")
@RequiredArgsConstructor
public class ComNoticeController {private final ComNoticeServiceImpl noticeService;/*** 公告列表* @return*/@GetMapping("/titlelist")public PageInfo<ComNoticeTitleInfo> getComNoticeTitleList(PageParam pageParam){PageInfo<ComNoticeTitleInfo> noticeTitleInfos = noticeService.noticeTitleList(pageParam);return noticeTitleInfos;}|}
二、@NonNull 注解使用解释:
作用就是为了判断代码中经常充斥着各种判空
@NonNull 指示目标对象不能为 null,用于注解方法,参数以及变量;即:给方法参数增加这个注解,会自动在方法内对该参数进行是否为空的校验,如果为空,则抛出 NPE(NullPointerException)
与Spring core中注解作用相似:
位于org.springframework.lang 包下,SpingBoot 项目中可直接使用。
@NonNull 指示目标对象不能为 null,用于注解方法,参数以及变量;
@NonNullApi 指定参数和方法返回值默认不能为 null,用于包(Package)级别注解;
@NonNullFields 指示变量不能为 null,用于包(Package)级别注解;
@Nullable 指定目标对象可以为 null,可用于注解方法,参数以及变量 。若是与 @NonNullApi 和 @NonNullFields 共用,会被覆盖;
注解 @RequiredArgsConstructor与@NonNull系列注解的用法:相关推荐
- @NonNull系列注解,优雅解决令人发指的判空
前言 写代码判空经常让人头疼,通常能写到手疼,代码中经常充斥着各种判空,影响代码美观.因此java 提出了 jsr-305 提供了前面问题的解决方案.业界有很多实现.下面介绍两个经常用到的实现及其示例 ...
- SpringBoot整合RabbitMQ系列--注解的使用
原文网址:SpringBoot整合RabbitMQ系列--注解的使用_IT利刃出鞘的博客-CSDN博客 简介 本文用实例介绍SpringBoot中RabbitMQ相关的注解. @RabbitListe ...
- 详解Spring Boot框架中的@Conditional系列注解
目录 1. @Conditional 注解 2. Spring boot 扩展 1) @ConditionalOnClass和@ConditionalOnMissingClass注解 2) @Cond ...
- @data注解的作用_Java中注解学习系列教程-2
在上一篇文章中,我们讲解了:Java中注解的定义.JDK中内置注解.第三方注解. 本文是注解系列教程中的第二篇.来看看今天主要内容: 1:注解的分类 2:元注解说明 3:自定义注解声明 一:注解的 ...
- 校验注解:@Valid 和 @Validated区别与用法(附详细案例)
一.案例对象 本文章会以案例为主,讲解@Valid 和 @Validated这两个注解的区别与用法. 1.首先,创建一个学生对象,如下: import lombok.Data;/*** 学生对象*/ ...
- SpringBoot @Conditional系列注解
目录 @ConditionalOnClass.@ConditionalOnMissingClass @ConditionalOnBean.@ConditionalOnMissingBean @Cond ...
- condition系列注解全面罗列
在spring某些场景下,我们希望随着某些配置项/类的存在与否,决定一些bean是否被实例化并加载到spring容器. @Conditional系列注解,便是这个问题的解决方案. 文章目录 相关注解罗 ...
- 【Java注解系列】内置注解与AOP实现自定义注解
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制. Java 语言中的类.方法.变量.参数和包等都可以被标注.和 Javadoc 不同,Java 标注可 ...
- 自定义依赖注解无效_关于Apt注解实践与总结【包含20篇博客】
超详细!安卓巴士开发者大会嘉宾及主题介绍 目录介绍 00.注解系列博客汇总 01.什么是apt 02.annotationProcessor和apt区别 03.项目目录结构 04.该案例作用 05.使 ...
最新文章
- H5页面遮罩弹框下层还能滚动的问题
- c++经典书籍--Effective C++
- matlab cell取一列,MATLAB cell struct
- html函数中怎么写超链接,如何调用html超链接中的函数
- BZOJ 5064: B-number
- 计算机专业答辩模板,论文答辩模板-计算机专业.ppt
- iphone录屏没内部声音_安卓手机如何录屏?手机高清录屏指南
- 第一个 Rails App 从安装到创建(windows版本)
- error HLP: Help compilation failed with code 1
- 部分编程错误小集-15.04
- 关于spring的事务管理(单数据库):纯属猜测。
- python中自定义错误_Python中的自定义错误消息
- Linux目录详细说明
- es的分片和副本_原创|ES广告倒排索引架构演进与优化
- 过渡矩阵、线性变换矩阵在对应基下坐标的求法
- Mothur3进阶_Mothur扩增子基因序列处理_数据比对、聚类及其处理评估
- TideSec远控免杀学习二(Evasion模块+veil)
- 怎么把独有的qlv格式转换成mp4格式
- 学渣的刷题之旅 leetcode刷题 100.相同的树
- MEMZ彩虹猫病毒讲解