备忘 Java 常用注解清单
Java 常用注解清单
整理 Java 后端开发中最常用的注解,涵盖实体映射、JSON 处理、校验、Spring 框架、安全控制等多个方面。
🗂️ 一、实体类/数据库映射(JPA / MyBatis / MyBatis-Plus)
注解 | 来源 | 说明 |
---|---|---|
@Table(name = "table_name") |
JPA / MyBatis | 指定数据库表名 |
@Column(name = "col_name") |
JPA / MyBatis | 指定字段对应的列名 |
@TableId(type = IdType.AUTO) |
MyBatis-Plus | 主键字段及生成策略 |
@TableField(exist = false) |
MyBatis-Plus | 非数据库字段 |
@TableLogic |
MyBatis-Plus | 逻辑删除字段 |
@Column(isLogicDelete = true) |
通用 Mapper | 表示逻辑删除(某些插件扩展) |
🔄 二、JSON 序列化/反序列化(Jackson)
注解 | 说明 |
---|---|
@JsonFormat(pattern = "yyyy-MM-dd HH |
时间字段格式化 |
@JsonIgnore |
忽略该字段 |
@JsonProperty("alias") |
JSON 使用别名 |
@JsonInclude(JsonInclude.Include.NON_NULL) |
忽略 null 字段 |
✅ 三、参数校验(JSR 303 / Hibernate Validator)
注解 | 说明 |
---|---|
@NotNull |
不能为空 |
@NotBlank |
字符串不能为空(不能是空格) |
@Size(min=1, max=20) |
限制长度 |
@Min(1) / @Max(100) |
最小/最大值 |
@Email |
邮箱格式 |
@Pattern(regexp = "...") |
正则校验 |
🌱 四、Spring 常用注解
注解 | 说明 |
---|---|
@Component / @Service / @Repository |
注册 Bean |
@Autowired |
注入依赖 |
@Value("${config.value}") |
注入配置值 |
@RestController |
标记为 REST 控制器 |
@RequestMapping("/path") |
请求映射路径 |
@GetMapping / @PostMapping |
REST 请求方法映射 |
@RequestParam |
获取查询参数 |
@PathVariable |
获取路径参数 |
@RequestBody |
获取请求体 |
@ResponseBody |
返回 JSON |
🔐 五、安全权限控制(Spring Security / JWT)
注解 | 说明 |
---|---|
@PreAuthorize("hasRole('ADMIN')") |
方法权限判断 |
@Secured("ROLE_ADMIN") |
权限控制 |
@RolesAllowed("ROLE_ADMIN") |
基于角色授权 |
@CrossOrigin |
跨域支持 |
📖 六、Swagger 接口文档
注解 | 说明 |
---|---|
@Api(tags = "用户管理") |
控制器说明 |
@ApiOperation("获取用户") |
方法说明 |
@ApiModel("User") |
实体说明 |
@ApiModelProperty("用户名") |
字段说明 |
🧰 七、其他常用注解
注解 | 说明 |
---|---|
@Slf4j |
引入日志(Lombok) |
@Data |
自动生成 getter/setter(Lombok) |
@Builder |
构建者模式 |
@Transactional |
开启事务 |
@PostConstruct |
初始化方法 |
@Scheduled(cron = "...") |
定时任务 |
📌 八、示例
@Data
@Table(name = "user")
public class User {
@TableId(type = IdType.AUTO)
private Long id;
@NotBlank
@Column(name = "username")
private String username;
@JsonIgnore
private String password;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@TableLogic
private Integer deleted;
}
本作品采用《CC 协议》,转载必须注明作者和本文链接