前言

在这篇博客中,我们将深入探讨Spring Boot及其相关依赖库的注解。Spring Boot极大地简化了Spring应用的开发过程,通过各种强大的注解,使得配置和开发变得更加高效和便捷。

本文只注重那些本人写代码时遇到过的注解,且会不断更新


Spring Boot注解

Spring Boot是一个基于Spring框架的简化开发工具,提供了快速创建、配置和部署Spring应用的便捷方式。

  • @SpringBootApplication这是一个复合注解,包含@Configuration@EnableAutoConfiguration@ComponentScan。它标记一个主配置类,并启用Spring Boot的自动配置机制。

Lombok注解

Lombok 是一个用于减少Java样板代码的库,通过注解自动生成常见的代码如getter、setter、构造器等。

  • @Data 自动生成getter/setter、toStringequalshashCode所有字段的构造函数等方法。使得代码更加简洁。

  • @NoArgsConstructor 自动生成一个 无参构造函数。对于JPA和一些框架要求实体类必须有一个无参构造函数,这个注解非常有用。

  • @AllArgsConstructor 自动生成一个包含所有字段的构造函数。方便在创建对象时直接初始化所有字段。

Spring Data Cassandra注解

Spring Data Cassandra是Spring Data家族的一部分,用于简化Cassandra数据库的访问和操作。它提供了一套便捷的API,使得在Spring应用中使用Cassandra更加高效和直观。

  • @Table 指定该类是一个Cassandra表的映射类。默认情况下,表名与类名相同,但可以通过参数来指定不同的表名。

  • @PrimaryKey标记字段为表的主键。这是Cassandra中用来唯一标识每一行的关键字段。

  • @Column 标记该字段为Cassandra表中的。默认情况下,列名与字段名相同,但可以通过参数来指定不同的列名。

Spring Framework注解

Spring Framework 是一个功能强大的开源框架,为Java企业级开发提供了全面的基础设施支持。它的设计目标是使Java开发更加简洁和高效,特别是通过依赖注入(Dependency Injection)和面向切面编程(Aspect-Oriented Programming)来实现松耦合的设计。

  • @Service 标记该类是一个服务类(业务逻辑层),Spring会自动检测并将其注册为一个Spring Bean。

  • @Autowired 自动注入依赖的Bean。Spring会自动查找并注入匹配的Bean到该字段或方法中。

  • @RestController 标记该类是一个RESTful控制器,Spring会自动将其注册为一个处理HTTP请求的控制器。该类中的方法默认返回JSON格式的数据。

  • @RequestMapping 定义URL请求路径映射。可以应用在类或方法上,指定请求路径和HTTP方法等信息。

    • @PostMapping 简化的@RequestMapping注解,专门用于处理HTTP POST请求

    • @GetMapping 简化的@RequestMapping注解,专门用于处理HTTP GET请求

    • @DeleteMapping简化的@RequestMapping注解,专门用于处理HTTP DELETE请求

  • @PathVariableURL路径中的变量绑定到方法参数上。例如,@GetMapping("/{id}")中的{id}会被绑定到方法参数@PathVariable String id

  • @RequestBody 将HTTP请求体中的JSON数据绑定到方法参数上。用于处理POST和PUT请求中的数据。

Java Bean Validation注解

Spring Framework中的验证(Validation)功能是确保应用程序接收到的数据符合预期的标准,从而提高应用程序的健壮性和安全性。Spring提供了对Bean Validation(JSR-380)的支持,并且可以使用注解来简化验证逻辑。

  • @NotNull 验证字段不能为null
  • @NotEmpty 验证集合、地图、数组或字符串不能为null或空(长度大于0)。
  • @NotBlank 验证字符串不能为null,并且必须包含至少一个非空白字符
  • @Size 验证集合、地图、数组或字符串的长度必须在指定范围内
    • 属性:minmax指定长度范围。
  • @Min 验证数字(包括整数和小数)必须大于或等于指定的最小值。
  • @Max 验证数字(包括整数和小数)必须小于或等于指定的最大值。
  • @Email验证字符串是否符合电子邮件地址格式。
  • @Pattern 验证字符串是否匹配指定的正则表达式
    • 属性:regexp指定正则表达式。
  • @Positive验证数字必须是正数
  • @PositiveOrZero 验证数字必须是正数或零
  • @Negative 验证数字必须是负数
  • @NegativeOrZero 验证数字必须是负数或零
  • @Digits 验证数字的整数位和小数位的位数
    • 属性:integerfraction指定整数和小数位数。

Spring Data MongoDB

  • @ID 指定某个属性为文档的ID
  • @Document 将领域类型声明为要持久化到MongoDB的文档
  • @Field 声明在持久化存储的文档中该属性的字符名称
  • @Transient 声明该属性是否要进行持久化