【持续更新】后端开发常用注解

【持续更新】后端开发常用注解
M-YoungBWeN【持续更新】后端开发常用注解
Swagger
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://swagger.io/)。
注解 | 说明 |
---|---|
@Api | 用在类上,例如Controller,表示对类的说明 |
@ApiModel | 用在类上,例如entity、DTO、VO |
@ApiModelProperty | 用在属性上,描述属性信息 |
@ApiOperation | 用在方法上,例如Controller的方法,说明方法的用途、作用 |
Lombok
Lombok 是 Java 后端开发中一个非常流行且实用的工具库,它通过注解的方式在编译时自动生成代码(如getter,setter,constructor等),极大地减少了冗长的样板代码,让代码更加简洁清晰。
注解 | 说明 |
---|---|
@Data | 复合注解,相当于同时添加了getter/setter/tostring/equalsandhash/require注解 |
@Value | 是 @Data 的不可变版本。生成的类所有字段都是 private 和 final 的,只会生成 getter 方法,不会生成 setter。同时类本身也是 final 的。 |
@Getter/@Setter | 可单独为类或字段生成 getter 和 setter 方法 |
@ToString | 自动生成 toString() 方法。默认包含所有非静态字段。 |
@EqualsAndHashCode | 自动生成 equals() 和 hashCode() 方法。 |
@NoArgsConstructor / @AllArgsConstructor / @RequiredArgsConstructor | 生成一个无参构造方法/生成一个包含所有字段的构造方法/生成一个包含所有 final 字段或标记了 @NonNull 且未初始化的字段的构造方法。 |
@Slf4j / @Log4j / @CommonsLog | 自动在类中注入一个日志对象(Logger),无需手动声明。使用场景: 在任何需要打日志的类上直接使用,最常用的是 @Slf4j。 |
@NonNull | 标注在字段、参数或返回值上,用于生成空值检查。如果用在字段上,生成的 setter 方法会做非空检查;如果用在方法的参数上,会在方法开始处生成空检查语句。使用场景: 快速实现空值安全。 |
@Builder | // 链式调用,清晰明了 User user = User.builder() // 获取建造者 .name(“Alice”) .email(“alice@example.com”) .age(30) // 可选 .phone(“123456789”) // 可选 .build(); // 最终构建对象 |
Spring
注解 | 说明 |
---|---|
@RequestBody | 将HTTP请求体(Request Body)中的内容(通常是JSON或XML)绑定并反序列化到一个Java对象上。将JSON字符串解析(反序列化)成该Java对象的一个实例。 |
@PathVariable | 用于捕获URL路径中的占位符片段,并将其作为参数传递给处理请求的控制器方法。简单来说,它让你能从美观、语义化的 URL 中获取参数,而不是从传统的查询字符串(?id=123)中获取。 |
@ResponseBody | 向前端返回数据。方法的返回值不应被解析为视图名称,而应直接写入 HTTP 响应体(Response Body)中。 |
@Controller | 传统的Spring MVC控制器。通常用于向前端返回视图(如JSP,Thymeleaf),但也可以配合@ResponseBody返回数据。 |
@RestController | 专为RESTful Web服务设计的控制器。它是@Controller和@ResponseBody的组合注解。它的所有方法都默认向前端返回数据(如JSON/XML),而不是视图。 |
@PostMapping | 是一个组合注解@RequestMapping(method = RequestMethod.POST) ,它专门用于将HTTP的POST请求映射到特定的处理器方法上。 |
@RequestMapping | |
@ExceptionHandler | 用于统一处理控制器中抛出的异常。它的核心目的是让你能够在一个地方集中处理异常逻辑,而不是在每个控制器方法中都写一遍try-catch块,从而让代码更清晰、更易于维护。 |
@Configuration | 类级别的注解,它表明这个类的主要目的是作为 Bean 定义的来源,其内部会包含一个或多个被 @Bean 注解的方法。可以把它理解为 XML 配置文件的 Java 替代品。 |
@Bean | 在@Configuration注释的配置类中,使用@Bean注解的方法,其返回值会被注册为Spring应用上下文中的一个Bean。方法名默认即为 Bean 的名称。 |
@Component | 可以实现类交给IOC容器管理。当 Spring 扫描到被 @Component 标注的类时,它会自动创建这个类的一个实例(即一个Bean),并将其纳入自己的应用上下文(ApplicationContext)中进行管理。 |
@Autowired | 可以实现程序运行时IOC容器自动注入需要的依赖对象。IOC容器中创建、管理的对象,称之为Bean对象。 |
@Service | @Service 是 @Component 的一个特化(Specialization),或者说,它是一个带了特定语义的 @Component ,其功能完全一样。它明确地告诉所有阅读代码的人(包括Spring本身):“这个类不是一个普通的组件,而是一个服务,是业务逻辑的核心所在地。” |
Java
注解 | 说明 |
---|---|
@Override | 标记注解,它用于明确地告诉编译器这个方法是重写自父类(或实现的接口)中的方法,而不是一个自己新写的方法。 |
@JsonFormat | Jackson库中一个非常常用且实用的注解,主要用于控制日期、时间、数字等类型在序列化(Java对象 -> JSON)和反序列化(JSON -> Java对象)时的格式。 |
自定义注解
评论
匿名评论隐私政策