当前位置: 首页 > news >正文

SpringMVC所有注解按照使用位置划分

目录

1. 类级别注解

2. 方法级别注解

3. 参数级别注解

4. 字段/返回值注解


1. 类级别注解

作用范围:标记在类上,定义类的基本行为或全局配置。

注解功能说明
@Controller声明类为控制器,处理HTTP请求,通常配合视图解析器返回视图名称。
@RestController@Controller + @ResponseBody,用于REST API,直接返回数据(JSON/XML)。
@RequestMapping定义类的基础请求路径(如@RequestMapping("/api")),方法级路径继承此路径。
@ControllerAdvice定义全局异常处理类,结合@ExceptionHandler处理多个控制器的异常。
@RestControllerAdvice@ControllerAdvice + @ResponseBody,用于REST全局异常处理。
@CrossOrigin允许类中所有方法的跨域请求(可指定来源、方法、头信息等)。
@SessionAttributes声明类中需要跨请求共享的模型属性(如@SessionAttributes("user"))。
@EnableWebMvc启用Spring MVC的默认配置(如消息转换器、视图解析器),通常用在配置类。
@ComponentScan配置类上指定扫描的包路径,自动注册组件(如控制器、服务等)。

2. 方法级别注解

作用范围:标记在方法上,定义方法的行为或处理逻辑。

注解功能说明
@RequestMapping定义方法的请求路径和HTTP方法(如@RequestMapping(value="/test", method=RequestMethod.GET))。
@GetMapping简化GET请求映射(等价于@RequestMapping(method=GET))。
@PostMapping简化POST请求映射。
@PutMapping简化PUT请求映射。
@DeleteMapping简化DELETE请求映射。
@PatchMapping简化PATCH请求映射。
@ExceptionHandler在控制器或@ControllerAdvice类中定义异常处理方法。
@ResponseBody方法返回值直接写入HTTP响应体(如返回JSON数据)。
@ResponseStatus指定HTTP响应状态码(如@ResponseStatus(HttpStatus.NOT_FOUND))。
@ModelAttribute标记方法,在控制器方法执行前运行,向模型添加属性(如初始化表单对象)。
@InitBinder自定义数据绑定逻辑(如注册属性编辑器)。
@Async声明方法为异步执行(需配合@EnableAsync启用)。

3. 参数级别注解

作用范围:标记在方法参数上,用于绑定请求数据。

注解功能说明
@RequestParam从请求参数中提取值(支持默认值和别名)。
@PathVariable从URL路径模板中提取变量(如/user/{id}中的id)。
@RequestBody将请求体内容(如JSON)反序列化为Java对象。
@RequestHeader从请求头中提取值。
@CookieValue从Cookie中提取值。
@ModelAttribute将请求参数绑定到模型对象(常用于表单提交)。
@Valid / @Validated触发数据验证(如JSR 303校验)。
@SessionAttribute从会话中提取已存在的属性值(需配合@SessionAttributes使用)。

4. 字段/返回值注解

作用范围:标记在字段或方法返回值上。

注解功能说明
@ResponseBody可标记方法,表示返回值直接写入响应体(与类级别@RestController等价)。
@ResponseStatus也可标记异常类,指定抛该异常时的HTTP状态码。
http://www.xdnf.cn/news/547363.html

相关文章:

  • 基于matlabcd7.x的无网格近似方法
  • CSS 样式表的四种应用方式详解以及css注释的应用
  • TypeScript与JavaScript的异同
  • MySQL:to many connections连接数过多
  • 指令烧录ORIN NANO操作系统
  • RocketMQ实战—订单系统面临的技术挑战
  • 开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享
  • 工业数据治理标准规范深度解析
  • 大模型应用开发“扫盲”——基于市场某款智能问数产品的技术架构进行解析与学习
  • 解决git中断显示中文为八进制编码问题
  • 设计模式 - 工厂模式
  • 中断全攻略:单片机优先级与 NVIC 详解(超形象解释)
  • Kubernetes中微服务JVM监控与自动发现的解决方案
  • HarmonyOS5云服务技术分享--云数据库使用指南
  • (十三)深入了解AVFoundation-采集:视频帧采集与实时滤镜处理
  • Https流式输出一次输出一大段,一卡一卡的-解决方案
  • 海康工业相机白平衡比选择器对应的值被重置后,如何恢复原成像
  • 【Unity】DOTween的常用函数解释
  • Java 大视界——Java大数据在智慧交通智能停车诱导系统中的数据融合与实时更新
  • 【数据结构】队列的完整实现
  • 五:操作系统内存管理之连续内存分配
  • 机器学习10-随机森林
  • 解决将cpp编译为dll,使用ctype的cdll调用,printf不输出在终端
  • 算法与数据结构:位运算与快速幂
  • 地理信息数据格式.GeoJSON数据格式介绍
  • 无人机避障——深蓝学院浙大Fast-planner学习部分(采用均匀B-Spline和非均匀B-Spline进行轨迹优化和时间重分配)
  • 力扣-盛最多水的容器
  • 网络刷卡器的分类和网口通讯流程
  • hghac集群服务器时间同步(chrony同步)
  • 替换word中的excel