当前位置: 首页 > 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状态码。

相关文章:

  • leetcode 旋转数组 java
  • 深度学习-mmcv中build_runner实例化全流程详解
  • 985,成立人工智能学院
  • T008-网络管理常用命令:ping,ipconfig,nslookup,route,netstat
  • upload-labs靶场通关详解:第12-13关
  • Leetcode百题斩-字典树
  • 如何在WordPress网站上添加即时聊天功能
  • 深度学习实战 04:卷积神经网络之 VGG16 复现三(训练)
  • docker 安装 Nacos
  • Linux下Docker使用阿里云镜像加速器
  • 在 JavaScript 中正确使用 Elasticsearch,第二部分
  • scNiche识别空间组细胞微环境
  • Index-AniSora模型论文速读:基于人工反馈的动漫视频生成
  • 系统思考:团队策略辅导
  • 02 if...else,switch,do..while,continue,break
  • List更简洁的编码构建
  • 基于C#的Modbus通信协议全面解析与实现指南
  • CSS 背景全解析:从基础属性到视觉魔法
  • Qt文件:XML文件
  • 使用 adb 命令截取 Android 设备的屏幕截图
  • 雀巢中国回应“巴黎水”丑闻报告:在中国销售的产品均符合相关法律法规要求
  • 2025年新季夏粮收购量将达到2000亿斤左右
  • 以军在加沙北部和南部展开大规模地面行动
  • 《缶翁的世界》首发:看吴昌硕等湖州籍书画家的影响
  • 种植耐旱作物、启动备用水源,甘肃各地多举措应对旱情
  • 经济日报:人工智能开启太空经济新格局