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

StringBoot注解

系列文章目录

第一章 Controller注解大全


文章目录

  • 系列文章目录
  • 前言
  • Controller层注解
    • 路由相关注解
    • 参数处理注解
    • 响应处理注解
    • 其他功能注解
    • 组合注解与场景注解
  • 后续


前言

现在java工程师已经对注解习以为常,做web开发的,经常会用到http的各类注解,这里做一下整理收集


在Spring Boot中,Controller层是处理HTTP请求的核心部分,常用的注解可分为路由、参数处理、响应处理、其他功能等类别。以下是详细的分类和说明:

Controller层注解

路由相关注解

@Controller
标记类为Controller组件,通常与模板引擎(如Thymeleaf)配合使用,返回视图名称。

@RestController
组合注解,包含@Controller@ResponseBody,用于直接返回JSON/XML数据,适用于RESTful API。

@RequestMapping
通用请求映射注解,可定义路径、HTTP方法等。例如:

@RequestMapping(value = "/api", method = RequestMethod.GET)

@GetMapping@PostMapping@PutMapping@DeleteMapping@PatchMapping
分别对应HTTP的GET、POST、PUT、DELETE、PATCH方法,是@RequestMapping的快捷方式。例如:

@GetMapping("/user/{id}")

参数处理注解

@PathVariable
从URL路径中获取变量值。例如:

@GetMapping("/user/{id}")
public String getUser(@PathVariable Long id) { ... }

应用场景

  1. 查询单个实体或信息
  2. 查询id非保密

@RequestParam
从请求参数中获取值,支持默认值和是否必填配置。例如:

@GetMapping("/search")
public String search(@RequestParam(required = false, defaultValue = "") String keyword) { ... }

应用场景

  1. 查询多条信息,长度可控,URL总长度不超过255

@RequestBody
将请求体中的JSON/XML数据绑定到Java对象。通常用于POST/PUT请求。例如:

@PostMapping("/user")
public User createUser(@RequestBody User user) { ... }

应用场景
提交信息,用于插入操作,数据量较大

@RequestHeader
获取请求头中的值。例如:

@GetMapping("/info")
public String getInfo(@RequestHeader("User-Agent") String userAgent) { ... }

应用场景
校验信息

@CookieValue
获取Cookie中的值。例如:

@GetMapping("/demo")
public String getCookie(@CookieValue("sessionId") String sessionId) { ... }

应用场景
校验,权限

响应处理注解

@ResponseBody
将方法返回值直接写入HTTP响应体,通常与@Controller配合使用。若使用@RestController则无需单独添加。

@ResponseStatus
自定义HTTP响应状态码。例如:

@ResponseStatus(HttpStatus.CREATED)
public void create() { ... }

@ExceptionHandler
处理Controller内的异常,返回特定响应。例如:

@ExceptionHandler(NotFoundException.class)
public ResponseEntity<String> handleNotFound(NotFoundException ex) {return ResponseEntity.status(HttpStatus.NOT_FOUND).body(ex.getMessage());
}

其他功能注解

@CrossOrigin
启用跨域请求支持。可配置在类或方法上。例如:

@CrossOrigin(origins = "http://example.com")
@RestController
public class MyController { ... }

@Validated@Valid
用于参数校验,支持JSR-303规范。例如:

@PostMapping("/user")
public User createUser(@Valid @RequestBody User user) { ... }

@InitBinder
自定义数据绑定和校验逻辑。例如:

@InitBinder
public void initBinder(WebDataBinder binder) {binder.setDisallowedFields("id");
}

组合注解与场景注解

@RestControllerAdvice
结合@ExceptionHandler@InitBinder等,全局处理异常或数据绑定。例如:

@RestControllerAdvice
public class GlobalExceptionHandler { ... }

@ModelAttribute
在方法上使用时,将返回值添加到模型数据中;在参数上使用时,从模型中获取数据。例如:

@ModelAttribute("commonData")
public String addCommonData() {return "Shared Data";
}

这些注解覆盖了Spring Boot Controller层的大部分需求,合理组合使用可高效构建Web应用或RESTful API。


后续

后续继续完善其他注解,例如service mapper config aop 启动项等

http://www.dtcms.com/a/427661.html

相关文章:

  • 【题解】洛谷 P4081 [USACO17DEC] Standing Out from the Herd P [后缀自动机 SAM]
  • 专做立体化的网站赣州君拓网络科技有限公司
  • 网站开发2019企业微信营销系统
  • Linux磁盘挂载脚本
  • nuttx实战项目:多路串口合并功能之六nuttx项目基本优化
  • mysql语句之insert语句DML事务的结束
  • 单机 6 节点打造Redis Cluster(3主3从)——从零到可用与踩坑速修
  • Cesium快速入门到精通系列教程二十:Cesium 1.95 给实体添加事件
  • 02、命令行的介绍
  • 三五互联网站管理登录地址wordpress 黑色
  • 小杰深度学习(four)——神经网络可解释性、欠拟合、过拟合
  • 【手撕机器学习 03】从“生数据”到“黄金特征”:机器学习项目中价值最高的一步
  • 网站关键字优化教程株洲发布信息网
  • 昆明优化网站公司在与客户谈网页广告时如何让客户相信网站流量
  • UNIX下C语言编程与实践21-UNIX 文件访问权限控制:st_mode 与权限宏的解析与应用
  • 瑞芯微RK35XX系列FFmpeg硬件编解码实测,详细性能对比!
  • php网站后台搭建wordpress购买返现
  • 首架机下线!“四川造”大型载客eVTOL筑低空新里程碑
  • 基于STM32与influxDB的电力监控系统-13
  • 250925-0930技术总结
  • AI 重塑实体经济:从技术落地到价值创造的实践路径
  • 认识软件测试
  • 网站服务器数据库湛江网站建设公司哪个好
  • 动手实现简单Vue.js ,探索Vue原理
  • UNIX下C语言编程与实践18-UNIX 文件存储原理:目录、i 节点、数据块协同存储文件的过程
  • 珠宝怎么做网站wordpress 活动报名插件
  • 除自身以外数组的乘积
  • 爬虫逆向--Day25Day26--原型链补环境
  • 拍拍灯电路(用咪头识别拍拍动作)
  • 极限!ubuntu系统联网