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

各种注解含义及使用

@RestController

@RestController注解 是Spring 4.0引入的一个组合注解,用于简化RESTful Web服务的开发。

@RestController注解 相当于 @Controller@ResponseBody 注解的组合,表示该类是一个控制器,并且所有的方法返回值都将直接写入HTTP响应体中,而不是返回视图名称。

对应依赖 

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
@RestController
public class ExampleController {}

接口返回参数为实体类时,返回Json数据 


@RequestMapping

用来处理请求地址到处理器controller功能方法映射规则的注解,这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法controller上,可用于类或方法上。

@RestController
@RequestMapping("/api")
public class ExampleController {@RequestMapping("/greet")public String greet(String name) {return "Hello";}
}

 访问方式:http://localhost:8080/api/greet


@RequestParam

用于获取查询参数

@RestController
@RequestMapping("/api")
public class ExampleController {@GetMapping("/greet")public String greet(@RequestParam String name) {return "Hello, " + name + "!";}
}

访问方式:http://localhost:8080/api/greet?name=Leslie

返回:Hello,Leslie!


@PathVariable

用于获取路径参数,用于get方法

@RestController
@RequestMapping("/api")
public class ExampleController {@GetMapping("/greet/{name}")public String greet(@PathVariable String name) {return "Hello, " + name + "!";}
}

访问方式:http://localhost:8080/api/greet/Leslie

返回:Hello,Leslie!


@RequestBody

用于获取请求体中的数据

@RestController
@RequestMapping("/api")
public class ExampleController {@PostMapping("/greet")public String greet(@RequestBody User user) {return "Hello, " + user.getName() + "!";}
}class User {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}
}

访问方式:http://localhost:8080/api/greet

返回:请求体为{"name": "Leslie"},响应将为Hello, Leslie!。


@Validated

校验参数是否符合规范,用于函数参数前

@RestController
@RequestMapping("/api")
public class ExampleController {@PostMapping("/greet")public String greet(@Validated String name) {return "Hello, " + name + "!";}
}

 


@JSONField(serialize = false)

阿里巴巴 Fastjson 库 提供的注解,用于控制 Java 对象与 JSON 数据转换时的字段行为。

  • 禁用字段的序列化
    当使用 Fastjson 将 Java 对象转换为 JSON 字符串时,被标记的字段不会包含在生成的 JSON 中
    典型场景:隐藏敏感信息(如密码、密钥)或不必要传输的字段。

 


@RequiredArgsConstructor

Lombok的注解,简化了对@Autowired书写,可以代替@Autowired注解

写在 Controller 类上

<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version>
</dependency>

注意事项

  1. 声明的变量必须加上final修饰
  2. 基于构造方法为属性赋值,容器通过调用类的构造方法将其进行依赖注入


@SneakyThrows

Lombok 提供的注解,旨在帮助开发者简化异常处理。

它允许方法抛出检查型异常而无需显式声明或捕获这些异常。

这对于那些不希望在方法签名中声明异常或不愿意编写复杂的 `try-catch` 块的场景非常有用。

直接写在函数上

                                                                Leslie Lee 随笔

http://www.xdnf.cn/news/5228.html

相关文章:

  • 心 光 -中小企实战运营和营销工作室博客
  • 微机控制高温扭转试验机
  • 关于AI 大数据模型的基础知识 杂记
  • 数字化与信息化的关系
  • 4.3 Thymeleaf案例演示:图书管理
  • 军事目标无人机视角坦克检测数据集VOC+YOLO格式4003张1类别
  • 44.辐射发射整改简易摸底测试方法
  • 企业名录搜索软件哪家好?
  • 6.01 Python中打开usb相机并进行显示
  • 动态创建链表(头插法、尾插法)
  • RISC-V CLINT、PLIC及芯来ECLIC中断机制分析 —— RISC-V中断机制(一)
  • Linux探秘坊-------12.库的制作与原理
  • java-----------------多态
  • 跨平台编码规范文档
  • c++:标准模板库 STL(Standard Template Library)
  • 【Go底层】http标准库服务端实现原理
  • 设计模式-迭代器模式
  • 【MySQL数据库】--SQLyog创建数据库+python连接
  • 26考研——中央处理器_CPU 的功能和基本结构(5)
  • 机器学习-数据集划分和特征工程
  • Rust 中的 `PartialEq` 和 `Eq`:深入解析与应用
  • 数据库审计如何维护数据完整性:7 种工具和技术
  • 解决Win11下MySQL服务无法开机自启动问题
  • 数巅智能携手北京昇腾创新中心深耕行业大模型应用
  • 卷积神经网络实战(4)代码详解
  • 第二章 如何安装KEIL5和新建工程
  • 【论文解读】| ACL2024 | LANDeRMT:基于语言感知神经元路由的大模型机器翻译微调框架
  • 2025年数维杯C题完整求解思路讲解+代码分享
  • AI星智协脑:智能驱动的高效协作管理平台全解读
  • QT聊天项目DAY10