Java 项目开发常用注解速查表
Java 项目开发常用注解速查表整理时间2026-07-10涵盖Java 标准注解、Spring/Spring Boot、JPA、校验、Lombok 等一、Java 标准注解JDK 内置注解作用Override表示方法重写了父类方法Deprecated标记方法/类已过时编译器会发出警告SuppressWarnings抑制编译器警告FunctionalInterface标记函数式接口Java 8SafeVarargs抑制可变参数泛型警告二、Spring 核心注解2.1 组件声明注解说明使用场景Component通用组件不属于以下三类的普通 BeanService业务逻辑层Service 类Repository数据访问层DAO/Mapper 类自动转换异常ControllerWeb 控制器返回视图MVC 控制器RestControllerREST API 控制器返回 JSON/XML等价于Controller ResponseBody2.2 依赖注入注解说明Autowired按类型自动注入Spring 专属Qualifier(beanName)配合Autowired按名称注入Resource(namebeanName)JSR-250 标准按名称注入Value(${app.name})注入配置文件中的属性值InjectJSR-330 标准类似Autowired2.3 配置类注解说明Configuration声明当前类为配置类Bean在配置类中手动声明 BeanComponentScan(com.example)指定组件扫描路径Import导入其他配置类PropertySource(classpath:app.properties)加载外部属性文件ConfigurationProperties(prefixapp)批量绑定配置前缀到 POJO2.4 Web 请求映射注解说明RequestMapping(/api)通用请求映射可指定 methodGetMapping(/users)GET 请求PostMapping(/users)POST 请求PutMapping(/users/{id})PUT 请求DeleteMapping(/users/{id})DELETE 请求PatchMapping(/users/{id})PATCH 请求2.5 请求参数绑定注解说明RequestParam(name)获取 URL 查询参数?namexxxPathVariable(id)获取 URL 路径参数/users/{id}RequestBody获取请求体JSON → 对象ResponseBody将返回值转为 JSON/XMLRequestHeader获取请求头CookieValue获取 Cookie 值ModelAttribute绑定表单数据到对象2.6 事务与 AOP注解说明Transactional声明式事务管理Transactional(readOnlytrue)只读事务优化查询性能Aspect声明切面类Before/After/Around切面通知类型Pointcut定义切点表达式2.7 异常处理注解说明ExceptionHandler(Exception.class)处理特定异常ControllerAdvice/RestControllerAdvice全局异常处理/数据绑定三、Spring Boot 专用注解注解说明SpringBootApplication组合注解 Configuration EnableAutoConfiguration ComponentScanEnableAutoConfiguration启用自动配置SpringBootTestSpring Boot 集成测试AutoConfigureMockMvc自动配置 MockMvc 用于测试TestPropertySource测试时覆盖配置属性Profile(dev)指定当前环境配置ConditionalOnProperty根据配置属性条件装配ConditionalOnClass根据类存在条件装配ConditionalOnMissingBean当缺少指定 Bean 时才装配EnableCaching开启缓存支持EnableAsync开启异步方法支持EnableScheduling开启定时任务支持Scheduled(cron0 0 * * * ?)定时任务表达式Async异步执行方法Cacheable(users)方法结果缓存CacheEvict(users)清除缓存四、JPA / 数据持久层注解注解说明Entity声明 JPA 实体类Table(namet_user)指定数据库表名Id声明主键字段GeneratedValue(strategyGenerationType.IDENTITY)主键生成策略Column(nameuser_name, nullablefalse)字段映射配置Transient字段不持久化到数据库Temporal(TemporalType.TIMESTAMP)日期类型映射Enumerated(EnumType.STRING)枚举映射为字符串OneToOne/OneToMany/ManyToOne/ManyToMany关联映射JoinColumn(namedept_id)外键关联字段MappedSuperclass父类映射子类继承字段主键生成策略策略说明GenerationType.AUTO自动选择GenerationType.IDENTITY数据库自增MySQLGenerationType.SEQUENCE数据库序列Oracle/PostgreSQLGenerationType.TABLE使用序列表GenerationType.UUIDUUID 生成五、Bean Validation 数据校验注解注解说明示例NotNull值不能为 nullNotNull private String name;NotEmpty不能为 null 且长度 0集合/字符串NotEmpty private ListString list;NotBlank不能为 null 且去除空白后长度 0NotBlank private String name;Size(min2, max20)长度/大小范围Size(min2, max20) private String name;Min(1)/Max(100)数值范围Min(1) private int age;Positive/Negative正数 / 负数Positive private BigDecimal price;PositiveOrZero/NegativeOrZero非负 / 非正DecimalMin(0.01)/DecimalMax(999.99)小数范围Digits(integer5, fraction2)整数位和小数位限制Pattern(regexp^[a-zA-Z0-9]$)正则匹配Email邮箱格式校验Email private String email;Future/Past未来 / 过去日期Future private Date expireDate;AssertTrue/AssertFalse必须为 true / falseValid级联校验嵌套对象Valid private Address address;校验使用方式// Controller 层触发校验PostMapping(/users)publicResponseEntity?createUser(ValidRequestBodyUserDTOuser){// ...}// 分组校验publicResponseEntity?updateUser(Validated(UpdateGroup.class)RequestBodyUserDTOuser){// ...}六、Lombok 注解减少样板代码注解说明Data组合注解 Getter Setter ToString EqualsAndHashCode RequiredArgsConstructorGetter/Setter自动生成 getter/setterToString自动生成 toStringEqualsAndHashCode自动生成 equals 和 hashCodeNoArgsConstructor无参构造器AllArgsConstructor全参构造器RequiredArgsConstructor为 final 字段生成构造器Builder建造者模式Slf4j自动生成private static final Logger logLog4j2使用 Log4j2Value不可变对象final getter无 setterNonNull参数/字段非空校验Cleanup自动关闭资源try-with-resourcesSneakyThrows隐式抛出受检异常七、Spring Security 安全注解注解说明EnableWebSecurity启用 Web 安全配置PreAuthorize(hasRole(ADMIN))方法执行前权限校验PostAuthorize(returnObject.owner authentication.name)方法执行后权限校验Secured(ROLE_ADMIN)基于角色的方法安全RolesAllowed(ADMIN)JSR-250 标准角色控制PermitAll/DenyAll允许/拒绝所有访问AuthenticationPrincipal获取当前认证用户EnableGlobalMethodSecurity(prePostEnabledtrue)启用方法级安全注解八、Swagger / OpenAPI 文档注解SpringDoc OpenAPI 3推荐注解说明Tag(name用户管理, description用户相关接口)API 分组标签Operation(summary获取用户, description根据ID获取用户信息)接口说明Parameter(nameid, description用户ID)参数说明ApiResponse(responseCode200, description成功)响应说明Schema(description用户实体, example{})模型描述Hidden隐藏该接口/字段Swagger 2旧版注解说明Api(tags用户管理)控制器描述ApiOperation(获取用户)接口描述ApiParam(用户ID)参数描述ApiModel(用户实体)模型描述ApiModelProperty(用户名)属性描述ApiIgnore忽略该接口九、测试相关注解注解说明SpringBootTest加载完整 Spring 上下文测试WebMvcTest(Controller.class)仅测试 Web 层DataJpaTest仅测试 JPA 层MockBean创建 Mock Bean 替换真实 BeanSpyBean创建 Spy BeanAutoConfigureMockMvc自动配置 MockMvcTest(JUnit 5)测试方法BeforeEach/AfterEach每个测试前后执行BeforeAll/AfterAll所有测试前后执行需 staticDisplayName(描述)测试显示名称ParameterizedTest参数化测试ValueSource(strings{a,b})参数来源Disabled禁用测试十、其他常用注解注解来源说明CrossOrigin(origins*)Spring跨域配置RequestScope/SessionScopeSpring请求/会话作用域LazySpring延迟初始化PrimarySpring优先使用该 BeanOrder(1)Spring指定执行顺序EventListenerSpring监听应用事件RetryableSpring Retry方法失败时重试RecoverSpring Retry重试耗尽后的恢复方法Timed/CountedMicrometer指标监控KafkaListenerSpring KafkaKafka 消息监听RabbitListenerSpring AMQPRabbitMQ 消息监听FeignClient(service-name)OpenFeign声明式 HTTP 客户端LoadBalancedSpring Cloud负载均衡 RestTemplateEnableCircuitBreakerSpring Cloud启用熔断器HystrixCommandHystrix熔断降级SentinelResourceAlibaba Sentinel流量控制DubboService/DubboReferenceApache DubboDubbo 服务暴露/引用附录快速记忆口诀组件三层Service、Repository、Controller 注入三种Autowired、Resource、Inject Web 映射Get/Post/Put/Delete/Patch 参数绑定Param、PathVariable、RequestBody 事务管理Transactional 校验非空NotNull、NotEmpty、NotBlank Lombok 神器Data、Slf4j、Builder Boot 入口SpringBootApplication本文档持续更新建议结合官方文档使用。

相关新闻

Sugar BI 智能问数实战:5类典型业务提问模板与图表生成效果解析

Sugar BI 智能问数实战:5类典型业务提问模板与图表生成效果解析

Sugar BI智能问数实战:5类典型业务提问模板与可视化效果深度解析在数据驱动的商业决策时代,业务人员每天需要处理海量数据却苦于技术门槛的限制。传统BI工具虽然功能强大,但复杂的操作流程让非技术人员望而却步。Sugar BI的智能问数功能通过自…

2026/7/11 2:23:29 阅读更多 →
从零开始设计riscv cpu记录之五

从零开始设计riscv cpu记录之五

一、在测试mulhsu不通过,其余的mul 、mulh、 mul都通过,这是为什么?指令含义mulh有符号 有符号,取高 32 位mulhsu有符号 无符号,取高 32 位mulhu无符号 无符号,取高 32 位mul有符号/无符号 有符号/无符…

2026/7/11 2:23:29 阅读更多 →
Cocos2d-x游戏逆向分析:从引擎识别到脚本解密实战指南

Cocos2d-x游戏逆向分析:从引擎识别到脚本解密实战指南

1. 项目概述:为什么我们需要一份Cocos2d-x游戏逆向分析文档?如果你是一名移动游戏安全研究员、外挂开发者,或者单纯是对游戏内部机制充满好奇的技术爱好者,那么你很可能已经接触过Cocos2d-x引擎开发的游戏。作为一款在全球范围内被…

2026/7/11 2:23:29 阅读更多 →

最新新闻

JAVA-数据结构与算法

JAVA-数据结构与算法

时间复杂度 1. 时间复杂度概念 时间复杂度的定义:在计算机科学中,算法的时间复杂度是⼀个数学函数,它定量描述了该算法的运行时间。⼀个算法所花费的时间与其中语句的执行次数成正比例,算法中的 基本操作的执行次数,…

2026/7/11 3:15:49 阅读更多 →
Unity VR物理碰撞优化:Pico设备性能与真实感平衡实战

Unity VR物理碰撞优化:Pico设备性能与真实感平衡实战

1. 项目概述:为什么VR中的物理碰撞如此棘手?如果你正在用Unity为Pico VR设备开发应用,尤其是涉及到需要抓取、投掷、交互的沉浸式体验,那么“物理碰撞”这个技术点,大概率已经让你头疼过了。这不仅仅是让两个物体不要穿…

2026/7/11 3:11:48 阅读更多 →
Codex移动端跨设备协同:AI编程助手实时监控与远程控制

Codex移动端跨设备协同:AI编程助手实时监控与远程控制

Codex是OpenAI推出的AI编程助手,现在通过ChatGPT移动应用实现了跨设备协同工作能力。这个项目最核心的价值在于让开发者能够在手机上实时查看和控制远程环境中的Codex任务执行状态,包括屏幕镜像、终端输出、测试结果等实时反馈。从技术实现角度看&#x…

2026/7/11 3:11:48 阅读更多 →
iOS激活锁绕过终极指南:使用applera1n免费解锁A9-A11设备

iOS激活锁绕过终极指南:使用applera1n免费解锁A9-A11设备

iOS激活锁绕过终极指南:使用applera1n免费解锁A9-A11设备 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否曾经遇到过这样的情况:购买了一台二手iPhone,却因为…

2026/7/11 3:09:48 阅读更多 →
PIC18LF47K40驱动CMT-8540S-SMT蜂鸣器的嵌入式音频设计

PIC18LF47K40驱动CMT-8540S-SMT蜂鸣器的嵌入式音频设计

1. 为什么选择PIC18LF47K40与CMT-8540S-SMT组合 在嵌入式音频项目中,微控制器与音频输出器件的选型直接影响最终效果和开发效率。PIC18LF47K40作为Microchip旗下经典的低功耗8位MCU,其内置的PWM模块和灵活的时钟系统特别适合驱动CMT-8540S-SMT这类磁性蜂…

2026/7/11 3:07:48 阅读更多 →
【大数据毕业设计】基于 Python 的微博热搜情感倾向可视化系统的设计与实现 基于 Python 的热门微博时序趋势研判系统(源码+文档+远程调试,全bao定制等)

【大数据毕业设计】基于 Python 的微博热搜情感倾向可视化系统的设计与实现 基于 Python 的热门微博时序趋势研判系统(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/11 3:05:47 阅读更多 →

日新闻

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南

5分钟完全掌握:ComfyUI ControlNet预处理器终极使用指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI图像生成真正听从你的指挥吗&…

2026/7/11 0:02:12 阅读更多 →
PIC18F45K42驱动EPT-14A4005P压电蜂鸣器方案详解

PIC18F45K42驱动EPT-14A4005P压电蜂鸣器方案详解

1. 项目背景与核心需求 在工业控制、安防系统和智能家居等领域,可靠的声音警报系统是不可或缺的基础组件。传统蜂鸣器存在音量不足、音质模糊等问题,而基于压电陶瓷技术的EPT-14A4005P蜂鸣器配合PIC18F45K42微控制器,能够构建一套适应性强、音…

2026/7/11 0:04:12 阅读更多 →
大模型推理中的算子融合优化:LayerNorm + Attention 的 CUDA Kernel 手写与验证

大模型推理中的算子融合优化:LayerNorm + Attention 的 CUDA Kernel 手写与验证

大模型推理中的算子融合优化:LayerNorm Attention 的 CUDA Kernel 手写与验证 一、GPU 利用率 30%:分开的算子吃掉所有带宽 推理服务的 GPU 利用率监测显示一个反直觉的现象:计算核心(SM)利用率不到 30%,但…

2026/7/11 0:04:12 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/10 19:03:29 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/9 21:41:05 阅读更多 →

月新闻