备忘 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:mm:ss") 时间字段格式化
@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 协议》,转载必须注明作者和本文链接
比特莱布斯(bit-labs) 是一家专注于前沿软件开发的科技团队,致力于为企业和创业者提供高性能、可扩展的数字化解决方案。我们擅长:移动应用,公众号,小程序,网站,桌面端等应用开发.
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!