注解相关知识

2023-05-16

1.@Slf4j
@Slf4j是用作日志输出的,一般会在项目每个类的开头加入该注解,如果不写下面这段代码,并且想用log;添加了该注释之后,就可以在代码中直接饮用log.info( ) 打印日志了。

2.@RequiredArgsConstructor
在我们写controller或者Service层的时候,需要注入很多的mapper接口或者另外的service接口,这时候就会写很多的@Autowired注解,代码看起来很乱
lombok提供了一个注解:
@RequiredArgsConstructor(onConstructor =@_(@Autowired))或类上@RequiredArgsConstructor注解,写在类上可以代替@Autowired注解,需要注意的是在注入时需要用final定义,或者使用@notnull注解
private final Mapper1 mapper1;
private @notnull Mapper2 mapper2;

3.@RestController
@RestController 是@controller和@ResponseBody 的结合
@Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。
@ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端

4.@NoArgsConstructor : 生成一个无参数的构造方法
@AllArgsContructor: 会生成一个包含所有变量的构造方法,默认生成的方法是 public 的
@RequiredArgsConstructor: 会生成一个包含常量,和标识了NotNull的变量的构造方法。生成的构造方法是私有的private。(可能带参数也可能不带参数)
主要使用前两个注解,这样就不需要自己写构造方法,代码简洁规范。

5.@Builder
Builder使用创建者模式又叫建造者模式。简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程。@Builder 注释为你的类生成相对略微复杂的构建器API。 @Builder 可以让你以下面显示的那样调用你的代码,来初始化你的实例对象:@Builder 可以放在类,构造函数或方法上。 虽然放在类上和放在构造函数上这两种模式是最常见的用例,但 @Builder 最容易用放在方法的用例来解释。

6.@Schema(required = true)
required表示这个字段在你要插入的数据中必须出现。

7.@EqualsAndHashCode(callSuper = true)
该注解用于子类对象之间进行比较的时候
不加该注解的影响:子类对象属性值一致,但其继承的父类对象属性值不一致,在比较的时候会出现比较结果不对的情况。@EqualsAndHashCode(callSuper = true) 注解的作用就是将其父类属性也进行比较。

8.@Mapper(componentModel="spring")的用法:
加上@Mapper(componentModel="spring")之后可以使用字段之间的映射
source:源字段,target:映射的字段
如:
@Mapper(componetModel=componentModel="spring")
public interface MyTest(){
   @Mappings({
      @Mapping(source="",target="")
      @Mapping(source="",target="")
   })
   UserDto toDto(User user);
}

9.@JsonProperty注解主要用于实体类的属性上,作用可以简单的理解为在反序列化的时候给属性重命名(多一个名字来识别)

10.@TableField
value属性
功能同TableId的value属性
注意:MP会自动将数据库中的下划线命名风格转化为实体类中的驼峰命名风格
例如,数据库中的列 create_time 和 update_time 自动对应实体类中的 createTime 和 updateTime

11.JsonSerializer
写一个类继承JsonSerializer 抽象类;然后在传输的实体类中的属性上;写一个类继承JsonSerializer 抽象类
实现其serialize()方法,然后在方法中写入转换规则即可

12. @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)
而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。


13.@PreAuthorize("hasAuthority(' ')")
@PreAuthorize 注解,顾名思义是进入方法前的权限验证,@PreAuthorize 声明这个方法所需要的权限表达式,例如:@PreAuthorize("hasAuthority('sys:dept:delete')"),根据这个注解所需要的权限,再和当前登录的用户角色所拥有的权限对比,如果用户的角色权限集Set中有这个权限,则放行;没有,拒绝


  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

注解相关知识 的相关文章

  • 高德、百度地图互联网可访问的瓦片地址

    ArcGIS上对外开放的瓦片地址网站 传送门 span class token literal property property http span span class token operator span span class to
  • VScode+Remote-SSH搭建远程开发环境

    最近项目需要 xff1a 多台本机控制远程电脑 xff0c 因此学习了一下在VScode中搭建一个远程调试环境 简单总结了一下 xff01 远程开发环境搭建 xff1a VScode 43 Remote SSH 1 下载Visual Stu
  • java.sql.SQLException: url not set

    出现这个问题的主要原因 xff0c 是因为代码中的 64 ConfigurationProperties prefix 61 34 spring datasource druid 34 和application properties配置文件
  • 交叉编译器--笔记

    一般我们用PC电脑上的ubuntu的gcc编译器是针对x86架构 xff0c 而再开发板上的编译是ARM架构的 xff0c 故需要一个可以在PC上运行的ARM架构的GCC编译器 xff08 交叉编译器 xff09 用这个GCC编译ARM架构
  • ensp配置FTP进行文件操作

    ensp配置FTP进行文件操作 首先配置设备之间的连通 接下来配置路由器为FTP Client 在本地创建一个FTP Huawei文件夹 xff0c 然后再创建一个子文件夹Config xff0c 再在里面创建一个test txt文件 xf
  • 改变世界的五位顶级程序员!

    点击上方 Java基基 xff0c 选择 设为星标 做积极的人 xff0c 而不是积极废人 xff01 源码精品专栏 原创 Java 2020 超神之路 xff0c 很肝 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析网络应用框
  • 你知道ping命令是如何工作的吗?

    点击上方 Java基基 xff0c 选择 设为星标 做积极的人 xff0c 而不是积极废人 xff01 每天 14 00 更新文章 xff0c 每天掉亿点点头发 源码精品专栏 原创 Java 2021 超神之路 xff0c 很肝 中文详细注
  • dashboard疏散主机提示报错:无法疏散主机...处理方法、openstack虚拟机状态卡在重启处理方法、openstack在数据库修改虚拟机状态的方法

    文章目录 dashboard疏散主机提示报错 无法疏散主机 处理方法 报错说明 状态卡在reboot状态 解决方法 登录nova数据库修改虚拟机信息 首先获取nova数据库的密码 登录nova数据库并做修改 验证信息是否修改成功 再次迁移并
  • 自学VUE(4)创建项目

    创建项目 1 检查电脑环境 node v npm v vue V cnpm v 2 创建项目 xff0c cd到桌面 xff0c 执行命令 xff1a vue init webpack firstVue 初始化一个项目 3 桌面获得一个项目
  • 前端请求后台报错400

    报错原因 xff1a 前端请求的字段名称或者字段类型和后台编写的实体类不一样 xff0c 或者前端提交的参数和后台需要的参数个数不匹配 xff0c 导致无法封装 xff0c 报错400 解决方法 xff1a 仔细对照前后端字段类型 xff0
  • Ubuntu终端文件管理工具ranger

    一 xff0c 安装 xff1a ubuntu使用apt get 安装 sudo apt get install ranger 二 xff0c 使用 ranger ranger 中有按键和命令两种操作方式 xff0c 按键是直接键入键盘上的
  • C# list根据字段生成排名

    需求分析 xff0c 我们要根据一个变量来生成排名 xff0c 变量数值相同则在同一名 xff0c 名数则跳过 xff0c 比如第一有两个 xff0c 那就不会有第二名 xff0c 直接到第三名 直接上代码 span class token
  • .net 6 web api项目添加日志(Serilog)管理,将日志输出到控制台、文件、数据库

    1 在nuget安装下面几个包 Serilog Serilog AspNetCore 用于日志输出到控制台 Serilog Formatting Compact 用于日志输出到mysql数据库 Serilog Sinks MySQL 用于日
  • GDB调试-新手笔记3

    ldd命令 43 readelf ldd 在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持 xff0c 以确保指定的命令在独立的系统内可以可靠的运行 ldd stack0 可以找到stack0程序使用的共享库 xff0c l
  • Spring源码分析(一)Spring的环境搭建与架构

    目录 一 Spring的基本信息1 1 Spring 概述1 2 架构 二 环境搭建2 1 gradle的安装与配置2 2 Spring源码构建 本图 xff1a 川西旅游中拍摄的 xff08 业余摄影 xff09 官网 xff1a Hom
  • RNA-seq:转录组数据分析处理(上)

    RNA seq xff1a 转录组数据分析处理 xff08 上 xff09 目录 RNA seq xff1a 转录组数据分析处理 xff08 上 xff09 一 流程概括二 准备工作1 fastq测序文件2 注释文件和基因组文件的获取 三
  • STM32串口数据接收 --环形缓冲区

    STM32串口数据接收 环形缓冲区 环形缓冲区简介 在单片机中串口通信是我们使用最频繁的 xff0c 使用串口通信就会用到串口的数据接收与发送 xff0c 环形缓冲区方式接收数据可以更好的保证数据丢帧率第 在通信程序中 xff0c 经常使用
  • Linux下驱动开发

    Linux下驱动开发 1 简介 驱动 xff0c 是指驱动计算机里软件的程序 驱动程序全称设备驱动程序 xff0c 是添加到操作系统中的特殊程序 xff0c 其中包含有关硬件设备的信息 驱动程序是操作系统与硬件连接的桥梁 设备驱动最通俗的解
  • openstack单网卡使用多IP说明、openstack虚拟机IP通网关但同网段IP不互通处理方法

    文章目录 openstack虚拟机IP通网关但同网段IP不互通处理方法问题描述处理方法 Openstack中单网卡使用多ip openstack虚拟机IP通网关但同网段IP不互通处理方法 问题描述 云平台的防火墙虚拟机部署再我们云平台上 x

随机推荐

  • Collections.singletonList使用方法

    方法注释 应用 xff1a 这个方法主要用于只有一个元素的优化 xff0c 减少内存分配 xff0c 无需分配额外的内存 xff0c 可以从SingletonList内部类看得出来 由于只有一个element 因此可以做到内存分配最小化 x
  • 如何修改电脑的MAC地址(手把手更改)

    打开控制面板 xff0c 显示如下 xff0c 然后点击 网络和Internet xff08 windows 43 r xff0c 然后输入control xff0c 按下回车 xff0c 即可打开控制面板 xff09 点击完 网络和Int
  • evo的快速安装Ubuntu 18.04

    由于一键安装成功后打开轨迹后报错 xff1a ERROR evo module evo main traj crashed no logfile written disabled 不会解决 xff0c 索性直接用源码安装方式 xff1a 如
  • 基于 SpringBoot + Vue 的音乐网站系统(源代码+数据库+思路文档)

    一 系统介绍 本项目分为管理员与普通用户两种角色 管理员角色包含以下功能 xff1a 后台对用户 歌曲 歌手 歌单信息的管理 用户角色包含以下功能 xff1a 音乐播放用户登录注册用户信息编辑 头像修改歌单打分歌单 歌曲评论歌单列表 歌手列
  • Linux下PS1设置

    PS1简介 PS1命令是linux系统中的一个全局变量 xff0c 用于定义用户命令行的字符显示 学名为 xff1a 默认提示符 盲猜Power Shell 1 PS1变量 span class token comment shell查看变
  • Linux内存管理

    Linux中的程序都是在进程中执行的 xff0c 而每个进程都有自己的虚拟地址空间 xff0c 进程中的内存操作 xff0c 比如访问 xff0c 插入数据都是在这块虚拟地址空间上操作的 虚拟地址空间 虚拟地址空间是一个进程所使用的虚拟内存
  • Maven库打包解决方案:No plugin found for prefix ‘install’ in the current project and in the plgin groups

    问题描述 我的外部本地包 xff0c 需要打包到我的maven库里 然后报错如下 No plugin found for prefix install in the current project and in the plgin grou
  • Ant Design Blazor表格高度自适应

    Ant Design Blazor表格高度自适应 一 先导入js 在 Host cshtml导入js lt component type 61 34 typeof App 34 render mode 61 34 ServerPrerend
  • Gson临时文件被删除造成的stackOverflowError

    错误内容 今天使用Gson序列化的时候出现了stackOverflowError的错误 xff0c 内容如下 xff1a at span class token class name span class token namespace c
  • tcpdump命令参数说明和使用实例、linux解析公网地址会卡顿一下解决方法

    文章目录 tcpdumptcpdump的参数选项基本返回值查看基本用法抓取指定网络接口的所有流量抓取指定网络接口指定主机地址 IP 域名 的所有流量只取出端口 3333 的联机数据包获取指定协议的数据包 如udp 在网口eth1上抓取源端口
  • Linux系统桌面环境(又称图形界面)有哪些?

    Linux系统有许多不同的图形用户界面 xff08 Graphical User Interface xff0c 简称GUI xff09 xff0c 又称桌面环境 以下几乎涵盖了所有的桌面环境 GNOME xff1a GNOME是Linux
  • 艾里斑大小与像元尺寸的匹配问题

    写给自己看的学习记录 xff1a 光具有波粒二象性 xff0c 由此衍生出了几何光学与衍射光学 在光学设计软件中 xff0c 最常用的判断标准是查看点列图的RMS半径以及MTF图的曲线 xff0c 这两者分别代表了两种传播性质的评价方式 在
  • visual studio 和visual studio code 的区别是什么?

    区别有三 xff1a 区别一 xff1a 含义不一样 Visual Studio xff08 简称VS xff09 是美国微软公司的开发工具包系列产品 xff0c 是一个基本完整的开发工具集 xff0c 它包括了整个软件生命周期中所需要的大
  • SpringBoot框架连接数据库实战(超详细)

    SpringBoot框架用于实战 xff08 可直接下载源码进行拓展 xff09 步骤 xff1a 创建数据库mr wen xff0c 新建两条测试数据创建SpringBoot项目编写代码块 xff0c 并进行单元测试 创建数据库mr we
  • JAVA课后习题(一)——我是歌手

    大家好 xff01 我是小黄 xff0c 很高兴又跟大家见面啦 xff01 今天更新的是 xff1a JAVA程序设计课后习题 我是歌手往期检索 xff1a 程序设计学习笔记 目录 创建时间 xff1a 2020年10月23日 软件版本 x
  • ffmpeg推流 av_dict_set 参数设置解析(降低延时、处理花屏、改善画面质量)(实时更新)

    一 关于影响时延的参数设置 1 preset xff1a 指定编码的配置 x264编码算法有很多可供配置的参数 xff0c 不同的参数值会导致编码的速度大相径庭 xff0c 甚至可能影响质量 为了免去用户了解算法 xff0c 然后手工配置参
  • JSP实验:三角形的边长,面积,周长

    我这里有一个问题 xff0c 如果不能构成三角形 xff0c 就应该不出现面积和周长 xff0c 但是我写不出来 编写两个JSP页面 xff1a inputTriangle jsp与showTriangle jsp inputTriangl
  • 线程池的总结

    线程池的作用 1 限制工作线程的数目 xff1b 2 减少创建和销毁线程的次数 xff1b 3 线程可以被重复利用 xff1b 4 可以根据系统的承受能力来调整工作线程的数目 xff1b 配置线程池的静态工厂方法 1 newSingleTh
  • chatgpt报错:Sorry, you have been blocked解决方法

    5月4日工作日开始 xff0c 刚打算使用chatgpt xff0c 出现了如下错误 xff1a Sorry you have been blocked 登录google没有找到解决方法 原本使用的edge浏览器 xff0c 然后切换到fi
  • 注解相关知识

    1 64 Slf4j 64 Slf4j是用作日志输出的 xff0c 一般会在项目每个类的开头加入该注解 xff0c 如果不写下面这段代码 xff0c 并且想用log xff1b 添加了该注释之后 xff0c 就可以在代码中直接饮用log i