那些项目中遇到的注解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • VO包与实体类中注解:
    • @Data
    • @I18nExcel
    • @Excel(name = "a.abc", width = 20)
    • @TableField(exist = false) 忽略这个字段
    • @ApiModelProperty(value = "字段注释")
    • @TableName("表名")
    • @Accessors(chain = true)
    • @EqualsAndHashCode(callSuper = false)
    • @ApiModel(value="表名对象", description="XXX页面")
    • @TableId(type = XXX)
    • @ApiModelProperty(value = "字段注释")
    • @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    • @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    • @ApiModelProperty(value = "属性的描述")
  • service包
    • @Service
    • @Transactional注解详细使用
    • @Autowired
  • controller包
    • @Api(tags = "订单管理")
    • @RestController
    • @RequestMapping("/book/BookList")
    • @Slf4j
    • @AutoLog(value = "修改-通过id查询")
    • @ApiOperation(value = "修改-通过id修改", 字段名 = "修改结果-通过id查询")
    • @GetMapping(value = "/queryById")
    • @RequestMapping(value = "/importExcel", method = RequestMethod.POST)


前言

提示:这里可以添加本文要记录的大概内容:


VO包与实体类中注解:

@Data

@Data: 这是Lombok库中的一个注解,用于在编译时自动生成 getter、setter、equals、hashCode 和 toString方法,从而简化Java类的编写。

@I18nExcel

@I18nExcel: 这是一个自定义注解,用于处理多语言环境下的 Excel 导出导入。具体的功能取决于注解的实现方式,它可能用于标识一个类,以便在处理 Excel 时考虑到国际化(I18n)的需求。意味着该注解支持多语言,可以根据不同的语言环境自动切换显示不同的内容。

@Excel(name = “a.abc”, width = 20)

@Excel(name = "a.abc", width = 20) 这是MyBatis-Plus中的一个自定义注解:用于Excel导入导出时的表格头设置,name属性表示指定Excel中的列名,width属性表示表格列的宽度。

@TableField(exist = false) 忽略这个字段

  • @TableField(exist = false):这是MyBatis-Plus中的一个自定义注解,用于标识一个属性不是数据库表中的字段,在进行CRUD操作时不会被映射到SQL语句中。这通常用于一些逻辑上的计算属性或者数据库表中不存在的字段。
  • exist属性设置为 false 表示该字段在数据库表中不存在,或者在进行某些操作时不需要考虑这个字段。

@ApiModelProperty(value = “字段注释”)

这个Java注解通常用在Spring框架的RESTful API开发中,用于生成API的文档说明

  • @ApiModelProperty:指定一个模型属性的说明信息,例如名称、类型、是否必填等,该注解用于在文档中描述API模型属性的功能和含义。
  • value = “字段注释”:该注解的value属性用于描述该属性的文本说明信息

因此,当使用Swagger等API文档工具生成API文档时,这个注解可以帮助开发者快速理解API的数据模型和属性含义,提高代码可读性和维护性。

@TableName(“表名”)

@TableName:这是MyBatis-Plus中的一个自定义注解,
用于指定相应的数据库表名

@Accessors(chain = true)

这是Lombok库中的一个注解,用于在编译时自动生成链式方法,使得可以链式调用set方法,例如 ‘setA(1).setB(2)’。

@EqualsAndHashCode(callSuper = false)

这个注解用于在编译时自动生成 equals 和 hashCode 方法。'callSuper = false’表示不调用父类的equals和hashCode方法

@ApiModel(value=“表名对象”, description=“XXX页面”)

@ApiModel:这是Swagger库中的一个注解,用于描述一个API模型的信息,包括模型的名称和描述等。在这个例子中,它描述了’XXX表名’对象,说明这个对象是用于描述’XXX功能’的。

@TableId(type = XXX)

@TableId(type = IdType.ASSIGN_ID):这是一个MyBatis-Plus的注解,用于标记数据库表的主键字段。‘type = IdType.ASSIGN_ID’表示主键的生成策略为’手动分配ID’,即你需要自行设置主键的值。

@ApiModelProperty(value = “字段注释”)

这是一个Swagger的注解,用于生成 API 文档时,描述字段的含义。
比如:value = "主键",主键就是这个字段的描述。

方便前端开发人员理解该属性的含义和用途。它的value属性用来描述该属性的名称和作用

@JsonFormat(timezone = “GMT+8”,pattern = “yyyy-MM-dd HH:mm:ss”)

  • 该注解定义了时间格式和时区属性,用于在序列化和反序列化时转换时间格式
  • “timezone” 属性定义了时区,此处为东八区(GMT+8)
  • “pattern” 属性定义了时间格式,此处为 “yyyy-MM-dd HH:mm:ss”,表示年月日时分秒的格式
  • 这个注解通常与Jackson库一起使用,用于JSON序列化和反序列化。

@DateTimeFormat(pattern=“yyyy-MM-dd HH:mm:ss”)

  • 该注解定义了与字符串相互转换时使用的时间格式
  • “pattern” 属性定义了日期时间格式,与@JsonFormat注解中的 “pattern” 属性相同,用于格式化日期字符串

主要用于Spring的表单绑定,确保前端传入的日期时间数据符合指定的格式。

@ApiModelProperty(value = “属性的描述”)

  • 该注解是用于Swagger生成API文档时的说明注解,表示该属性为创建日期,并在文档中显示该属性的说明,

总的来说,这些注解通常用在实体类的属性上,以指定如何处理和展示日期时间数据,以及如何为API文档提供描述。例如:

public class SomeEntity {  @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")  @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")  @ApiModelProperty(value = "创建日期")  private Date createdDate;  // ... 其他属性和方法 ...  
}

service包

@Service

@Service注解表示这是一个服务层的Bean,由Spring容器管理,可被自动注入到其他需要使用的类中。通常在服务层中注入DAO层的Bean,调用DAO层的方法来实现业务逻辑的处理。

用途:这个注解用于标记一个类为服务类。服务类通常是业务逻辑的主要承载者,并处理数据访问对象(DAO)或数据访问服务(如JPA或Hibernate)以执行CRUD(创建、读取、更新、删除)操作。

好处:这个注解不仅仅是一个标记,它实际上会创建一个Spring管理的bean,这意味着Spring容器将负责这个类的生命周期,包括其创建、初始化和销毁。

@Transactional注解详细使用

用途:这个注解用于声明事务的边界。当你在方法上使用它时,这意味着该方法内的所有数据库操作要么全部成功,要么全部失败回滚。这对于确保数据的完整性和一致性非常重要。

属性:

  • rollbackFor: 这个属性用于指定哪些异常应该触发事务回滚。
  • 比如:rollbackFor = Exception.class意味着任何 Exception或其子类的实例都会触发事务回滚。
    -好处:使用@Transactional注解可以简化事务管理,因为它自动为你处理事务的提交和回滚,而不需要手动管理。

@Autowired

用途:这个注解用于自动装配依赖。Spring容器会自动识别这个注解,并将匹配的bean注入到被标注的字段、构造函数或方法中。

好处:这大大简化了依赖注入的过程,因为你不需要手动创建和管理依赖对象。Spring会为你处理这一切。

controller包

@Api(tags = “订单管理”)

用途:tags: 这个属性用于为相关的API操作提供一个或多个标签。在生成的文档中,这些标签可以帮助用户更好地组织和理解API的功能。标记这个接口所属的API分组,即订单管理。

解释:这个注解来自于Swagger框架,用于描述API的元数据,包括API的分组、标签、描述等

@RestController

用途:这个注解是Spring框架提供的,用于标记一个类为RESTful控制器。这意味着这个类中的方法将处理HTTP请求并返回HTTP响应。

好处:这个注解组合了@Controller@ResponseBody的功能,使得你可以更方便地创建RESTful API

解释:这个注解告诉Spring框架,这个类是一个控制器,可以处理REST请求,并且每个方法都返回数据而不是视图。

@RequestMapping(“/book/BookList”)

用途:定义控制器处理的请求路径。这意味着所有在此控制器中的方法都将处理以此路径为前缀的请求。

解释:这个注解用于映射请求的URI到特定的控制器方法上,即/book/BookList路径的请求将由这个控制器处理。

好处:通过在一个控制器上设置基础路径,可以更方便地组织和管理相关的API操作。

@Slf4j

用途:自动生成日志对象。它会自动为你的类生成一个名为log的Logger实例,可以用它来记录日志。

好处:通过使用Lombok的@Slf4j注解,你可以避免手动创建和管理Logger实例,可以使用log对象输出日志信息,方便调试和排查问题。从而使代码更加简洁和易于维护。

@AutoLog(value = “修改-通过id查询”)

用途:这个注解通常用于自动记录API操作的日志。它可以帮助你跟踪和调试API的使用情况,以及了解哪些操作被执行和何时执行。

@ApiOperation(value = “修改-通过id修改”, 字段名 = “修改结果-通过id查询”)

@ApiOperation: 这个注解的作用是对API方法进行描述,用于生成API文档。它可以帮助你为每个API操作提供详细的描述和说明。

  • value:这个属性用于提供一个简短的描述,以解释这个API操作的目的或做了什么。
  • 字段名(表中字段):这个属性用于提供更详细的说明或注释,以进一步解释这个API操作。

@GetMapping(value = “/queryById”)

用途:这个注解是Spring框架提供的,用于定义HTTP GET请求的处理方法。它指定了哪个URL路径应该映射到这个方法,以便处理GET请求。该注解通常用于查询操作

  • value: 这个属性定义了URL路径。这里指定了请求的路径为"/queryById"。
  • 好处:通过使用 @GetMapping 注解,你可以更方便地创建和处理 RESTful API 的 GET请求。

@RequestMapping(value = “/importExcel”, method = RequestMethod.POST)

@RequestMapping是Spring中一个用于映射请求路径和请求方法的注解,它可以被用于类或者方法上。在类上使用该注解可以为类中所有方法的请求路径添加一个前缀,而在方法上使用该注解则可以为该方法指定一个请求路径。

具体来说,该注解可以接受以下属性:

  • value:指定请求路径,可以包含路径变量和通配符。
  • method:指定请求方法,可以是GET、POST、PUT、DELETE等。
  • params:指定请求参数及其值。
  • headers:指定请求头及其值。
  • consumes:指定请求体的MIME类型。
  • produces:指定响应体的MIME类型。

通过使用不同的属性,可以创建不同类型的请求映射,以处理不同类型的请求。在Spring MVC中,该注解是最常用的注解之一,它可以使得请求的处理更加清晰和规范化。

例子:

@RestController  
@RequestMapping("/api/v1") // 基础路径为 "/api/v1"  
public class MyController {  @GetMapping("/users") // 请求映射为 "/api/v1/users"  public List<User> getUsers() {  // ... 方法体 ...  }  @PostMapping("/users") // 请求映射为 "/api/v1/users",HTTP方法为POST  public User createUser(@RequestBody User user) {  // ... 方法体 ...  }  
}  

在上面的例子中,@RequestMapping("/api/v1")定义了基础路径为/api/v1。在该类中的每个处理方法上,我们使用了更具体的@GetMapping@PostMapping注解来定义具体的请求映射路径和HTTP方法。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

从其它环境转移到Nacos的方法-NacosSync

理解 NacosSync 组件启动 NacosSync 服务通过一个简单的例子&#xff0c;演示如何将注册到 Zookeeper 的 Dubbo 客户端迁移到 Nacos。 介绍 NacosSync是一个支持多种注册中心的同步组件,基于Spring boot开发框架,数据层采用Spring Data JPA,遵循了标准的JPA访问规范,支持多种…

Neural Networks for Fingerprint Recognition

Neural Computation ( IF 3.278 ) 摘要&#xff1a; 在采集指纹图像数据库后&#xff0c;设计了一种用于指纹识别的神经网络算法。当给出一对指纹图像时&#xff0c;算法输出两个图像来自同一手指的概率估计值。在一个实验中&#xff0c;神经网络使用几百对图像进行训练&…

基于SSM的微博系统网站的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

十四天学会C++之第一天(入门和基本语法)

C的起源和历史 C诞生于20世纪80年代初&#xff0c;它的创造者是计算机科学家Bjarne Stroustrup。当时&#xff0c;Stroustrup在贝尔实验室工作&#xff0c;他希望为C语言添加一些功能&#xff0c;以便更好地支持系统开发。这个愿望促使他创建了C。 C的名字来源于它的基因&…

BIT.8_Linux 多线程

lesson35: 一、 1.OS调度的基本单位&#xff08;0&#xff1a;13&#xff1a;5&#xff09; 2.进程XXXX&#xff08;0&#xff1a;14&#xff1a;15&#xff09; a.进程的内核数据结构包含哪几个部分&#xff1f;&#xff08;n个&#xff09;&#xff08;0&#xff1a;15&a…

24Hibench

1. Hibench 官网 ​ HiBench is a big data benchmark suite that helps evaluate different big data frameworks in terms of speed, throughput and system resource utilizations. It contains a set of Hadoop, Spark and streaming workloads, including Sort, WordCou…

中断向量控制器(NVIC)

1. 什么是中断 在处理器中&#xff0c;中断是一个过程&#xff0c;即CPU在正常执行程序的过程中&#xff0c;遇到外部/内部的紧急事件需要处理&#xff0c;暂时中止当前程序的执行&#xff0c;转而去为处理紧急的事件&#xff0c;待处理完毕后再返回被打断的程序处继续往下执行…

博客无限滚动加载(html、css、js)实现

介绍 这是一个简单实现了类似博客瀑布流加载功能的页面&#xff0c;使用html、css、js实现。简单易懂&#xff0c;值得学习借鉴。&#x1f44d; 演示地址&#xff1a;https://i_dog.gitee.io/easy-web-projects/infinite_scroll_blog/index.html 代码 index.html <!DOCT…

[Linux 基础] 一篇带你了解linux权限问题

文章目录 1、Linux下的两种用户2、文件类型和访问权限&#xff08;事物属性&#xff09;2.1 Linux下的文件类型2.2 基本权限2.3 文件权限值的表示方法&#xff08;1&#xff09;字符表示方法&#xff08;2&#xff09;8进制数值表示方法 2.4 文件访问权限的相关设置方法(1) chm…

R语言中更改R包安装路径

看到这些包下载到我的C盘&#xff0c;我蛮不爽的&#xff1a; 所以决定毫不犹豫的改到D盘&#xff1a; 首先&#xff0c;我们需要在RStudio中新建一个初始启动文件&#xff1a; file.edit(~/.Rprofile) 然后去你喜欢的环境新建一个文件夹存放安装的包的位置&#xff0c;我喜欢…

数据结构与算法课后题-第三章(顺序队和链队)

#include <iostream> //引入头文件 using namespace std;typedef int Elemtype;#define Maxsize 5 #define ERROR 0 #define OK 1typedef struct {Elemtype data[Maxsize];int front, rear;int tag; }SqQueue;void InitQueue(SqQueue& Q) //初始化队列 {Q.rear …

春招秋招,在线测评应用得越来越普及

这年代提到测评&#xff0c;很多人都比较熟悉&#xff0c;它有一种根据所选的问题给予合适答案方面的作用。因为不同的测评带来的影响不一样&#xff0c;所以很多人都会关注在线测评的内容有哪些。在校园招聘上面&#xff0c;在线测评也频繁出现了&#xff0c;这让很多人好奇它…

[Linux]线程互斥

[Linux]线程互斥 文章目录 [Linux]线程互斥线程并发访问问题线程互斥控制--加锁pthread_mutex_init函数pthread_mutex_destroy函数pthread_mutex_lock函数pthread_mutex_unlock函数锁相关函数使用示例使用锁的细节加锁解锁的实现原理 线程安全概念常见的线程不安全的情况常见的…

CV面试知识点总结

一.卷积操作和图像处理中的中值滤波操作有什么区别&#xff1f; 1.1卷积操作 卷积操作是一种线性操作&#xff0c;通常用于特征的提取&#xff0c;通过卷积核的加权求和来得到新的像素值。1.2中值滤波 原文&#xff1a; https://blog.csdn.net/weixin_51571728/article/detai…

【Linux】UDP的服务端 + 客户端

文章目录 &#x1f4d6; 前言1. TCP和UDP2. 网络字节序2.1 大小端字节序&#xff1a;2.2 转换接口&#xff1a; 3. socket接口3.1 sockaddr结构&#xff1a;3.2 配置sockaddr_in&#xff1a;3.3 inet_addr&#xff1a;3.4 inet_ntoa&#xff1a;3.5 bind绑定&#xff1a; 4. 服…

【面试经典150 | 矩阵】旋转图像

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;原地旋转方法二&#xff1a;翻转代替旋转 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带…

线性表的链式存储结构——链表

一、顺序表优缺点 优点&#xff1a;我们知道顺序表结构简单&#xff0c;便于随机访问表中任一元素&#xff1b; 缺点&#xff1a;顺序存储结构不利于插入和删除&#xff0c;不利于扩充&#xff0c;也容易造成空间浪费。 二、链表的定义 ①&#xff1a;概念&#xff1a; 用一组任…

Springboot+vue的在线试题题库管理系统(有报告),Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的在线试题题库管理系统&#xff08;有报告&#xff09;&#xff0c;Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的在线试题题库管理系统&#xff0c;采用M&…

PHP 数码公司运营管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 数码公司运营管理系统系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 php 数码公司运营管理系统 代码 https://download.csdn.net/download/qq_41…

基于 jasypt 实现spring boot 配置文件脱敏

前言 在项目构建过程中&#xff0c;保护敏感信息的安全性至关重要&#xff0c;为了提高系统的安全性能&#xff0c;我们采用了Jasypt来对配置文件中的敏感信息进行加密处理&#xff0c;以确保系统的机密信息不被轻易泄露。 步骤 添加Maven依赖 首先&#xff0c;我们需要添加…