• 那些项目中遇到的注解


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


    前言

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

    VO:非数据库映射


    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;  
        // ... 其他属性和方法 ...  
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    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) {  
            // ... 方法体 ...  
        }  
    }  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

  • 相关阅读:
    如何预防最新的Mallox变种malloxx勒索病毒感染您的计算机?
    Java线程池-异步任务编排
    3.46 OrCAD软件怎么输出物料清单BOM表格?
    MySQL 8.0:性能优化与新功能
    C++知识精讲12——取整方式及实战讲解【全网最详细取整“集合”】
    5.Vue-在Vue框架中实现Vue的增删改查
    微信小程序导入js使用时候报错
    HTML 表格
    大学生餐饮主题网页制作 美食网页设计模板 学生静态网页作业成品 dreamweaver美食甜品蛋糕HTML网站制作
    Python 自动化测试框架unittest与pytest的区别
  • 原文地址:https://blog.csdn.net/rej177/article/details/133968970