那些项目中遇到的注解

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


前言

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


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方法。

猜你喜欢

转载自blog.csdn.net/rej177/article/details/133385251