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

SpringMVC04所有注解按照使用位置划分| 按照使用层级划分(业务层、视图层、控制层)

目录

一、所有注解按照使用位置划分(类、方法、参数)

1. 类级别注解

2. 方法级别注解

3. 参数级别注解

4. 字段/返回值注解

二、按照使用层级划分(业务层、视图层、控制层) 

1、控制层(Controller Layer)

2、业务层(Service Layer)

3、数据层(Data Layer)

4、视图层(View Layer)

5、其他辅助注解


一、所有注解按照使用位置划分(类、方法、参数)

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状态码。

二、按照使用层级划分(业务层、视图层、控制层) 

1、控制层(Controller Layer)

核心注解:处理 HTTP 请求和响应,定义路由和请求映射

注解作用说明
@Controller标记类为控制器,处理 HTTP 请求,通常与视图技术(如 JSP、Thymeleaf)结合使用
@RestController@Controller + @ResponseBody 的组合,用于 RESTful API(直接返回数据)
@RequestMapping通用请求映射(可指定 methodpath 等参数)
@GetMapping简化 GET 请求映射 (@RequestMapping(method = RequestMethod.GET))
@PostMapping简化 POST 请求映射
@PutMapping简化 PUT 请求映射
@DeleteMapping简化 DELETE 请求映射
@PatchMapping简化 PATCH 请求映射
@PathVariable从 URI 路径中提取参数(如 /users/{id}
@RequestParam从 URL 查询参数中提取值(如 ?name=John
@RequestBody将 HTTP 请求体(如 JSON)绑定到方法参数对象
@ResponseBody将方法返回值直接写入 HTTP 响应体(不经过视图解析器)
@ExceptionHandler在控制器内定义异常处理方法
@CrossOrigin配置跨域请求支持(CORS)
@InitBinder自定义请求参数绑定规则

2、业务层(Service Layer)

核心注解:实现业务逻辑(由 Spring Core 管理)

注解作用说明
@Service标记类为业务逻辑组件(Service 层)
@Transactional声明事务管理(通常加在 Service 层方法上)

3、数据层(Data Layer)

核心注解:数据访问和持久化(由 Spring Data/JPA 管理)

注解作用说明
@Repository标记类为数据访问组件(DAO 层)
@Entity标记 JPA 实体类
@Table指定实体类对应的数据库表
@Id标记实体类的主键字段
@GeneratedValue配置主键生成策略
@Column配置实体类字段与数据库列的映射

4、视图层(View Layer)

核心注解:处理视图渲染和数据展示

注解作用说明
@ModelAttribute1. 将方法返回值添加到模型(用于视图渲染)
2. 从模型绑定数据到方法参数
@SessionAttributes声明控制器使用的会话属性(跨请求共享数据)
@CookieValue从 HTTP Cookie 中提取值
@RequestHeader从 HTTP 请求头中提取值

5、其他辅助注解

注解作用说明
@Component通用组件标记(非 MVC 层,由 Spring Core 管理)
@Configuration标记配置类(定义 Bean)
@Bean声明方法返回的对象由 Spring 容器管理
@Autowired自动注入依赖(按类型)
@Qualifier按名称指定注入的 Bean
@Profile指定配置或 Bean 生效的环境
@Value注入配置文件中的属性值(如 @Value("${app.name}")

相关文章:

  • 【VS Code】Qt程序的调试与性能分析
  • 【Redis】哈希表结构
  • 网络学习中通信方面的相关知识、及再次解读B=2W
  • 大语言模型 14 - Manus 超强智能体 开源版本 OpenManus 上手指南
  • Kruise Rollout金丝雀发布
  • 《棒球知识百科》亚冬会有哪些国家参加·棒球1号位
  • [luogu12541] [APIO2025] Hack! - 交互 - 构造 - 数论 - BSGS
  • 今日行情明日机会——20250520
  • AI换商品背景:电商摄影降本增效的解决方案
  • IEEE Journal on Selected Areas in Communications 2025年1-5月论文速览
  • 苍穹外卖系统结构与功能报告
  • 算法训练之分治(快速排序)
  • 【数据库】-1 mysql 的安装
  • 一、Singal Tap 观察reg信号和wire信号
  • ubuntu14.04/16.06 安装vscode(实测可以用)
  • 注意力机制概念
  • mbed驱动st7789屏幕-硬件选择及连接(1)
  • power BI 倒计时+插件HTML Content,实现更新倒计时看板!
  • Java转Go日记(四十二):错误处理
  • 使用ZYNQ芯片和LVGL框架实现用户高刷新UI设计系列教程(第十三讲)
  • 明起迎降雨最强时段,南方将有成片暴雨大暴雨
  • 35款移动应用存在违法违规收集使用个人信息情况,涉及智谱清言、Kimi等
  • “当代阿炳”甘柏林逝世,创办了国内第一所残疾人高等学府
  • 哈马斯与以色列在多哈举行新一轮加沙停火谈判
  • 国宝文物子弹库帛书二、三卷从美启程,18日凌晨抵京
  • 工人日报:应对“职场肥胖”,健康与减重同受关注