Spring Boot 注解详解01

一、@RequestMapping 注解

1.1 @RequestMapping 注解简单小解

@RequestMapping 是经常被使用到的注解,他是用来注册接口的路由映射。

路由映射:当用户访问一个URL时,将用户的请求对应到程序中某个类的某个方法的过程就是路由映射。

1.2 @RequestMapping 使用

@RequestMapping 既可以修饰类,也可以修饰方法,但是它无法修饰对象。

@RequestMapping标识一个类:设置映射请求的请求路径的初始信息。

@RequestMapping标识一个方法:设置映射请求路径的具体信息

像下面这段代码,我就是设置了一个URL为:http://127.0.0.1:8080/log/hello 的一个网址,运行服务,在浏览器中输入这个网址之后会打印("hello,你好")如下图

java 复制代码
@RequestMapping("/log")
@RestController
public class LogController {
    @RequestMapping("/hello")
    public String hello() {
        return "hello,你好";
    }
}

RequestMapping 即支持Get请求,也支持Post请求。

如果该地址需要指定使用Get请求来访问就可以添加@GetMapping注解,如果需要使用Post请求就需要添加@PostMapping注解。而且@GetMapping 和 @PostMapping 两个注解都是方法注解

java 复制代码
@RequestMapping("/log")
@RestController
public class LogController {
//    @RequestMapping("/hello")
    @GetMapping("/hello")
    public String hello() {
        return "hello,你好";
    }
}
@RequestMapping("/log")
@RestController
public class LogController {
//    @RequestMapping("/hello")
    @PostMapping("/hello")
    public String hello() {
        return "hello,你好";
    }
}

1.3 请求传递参数的使用

1.3.1 传递单个参数

使用postman来进行访问,参数名要对的上才可以,此处我命名不规范,你们可以命名为name...

java 复制代码
@RequestMapping("/test")
@RestController
public class TestController {
    @RequestMapping("/r1")
    public String r1(String r1) {
        return "接收到参数:" + r1;
    }
}
1.3.2 没有 @RestController 的报错信息

没有@RestController 注解之后,访问该URL就找不到,但是服务器并没有报错信息,因为404是客户端错误,所以这个问题本来就是服务器没返回数据导致客户端正常访问报错,是服务器错误,但是却是客户端错误信息,所以这个错误的排查难度会提高一点。

java 复制代码
@RequestMapping("/test")
//@RestController
public class TestController {
    @RequestMapping("/r1")
    public String r1(String r1) {
        return "接收到参数:" + r1;
    }
}
1.3.3 不传递参数的报错信息

不传递参数无报错信息,需要单独注意,这是使用包装类型的传递,如果是基础类型(如:int....)等类型会出现报错信息。

1.3.4 使用基础类型接收参数不传递的报错信息

下面的代码使用int来接收,不传递参数会直接让前端收到后端报的500的错误码。后端也会有相应的报错信息

java 复制代码
@RequestMapping("/test")
@RestController
public class TestController {
    @RequestMapping("/r1")
    public String r1(int name) {
        return "接收到参数:" + name;
    }
}
1.3.5 传递类型参数不匹配的报错信息

使用 Integer 作为参数,传递 String 类型的报错信息,前端为400,

java 复制代码
@RequestMapping("/test")
@RestController
public class TestController {
    @RequestMapping("/r1")
    public String r1(Integer name) {
        return "接收到参数:" + name;
    }
}
1.3.6 传递多个参数

传递多个参数的时候需要注意变量名字需要对准,一个名字对不上或者类型对不上,就会出现以上的报错信息。

java 复制代码
    @RequestMapping("/r2")
    public String r2(String name, String password) {
        return "接收参数 name: " + name + ", password: " + password;
    }
相关推荐
Cc.Y25 分钟前
Java零基础入门:封装与继承 —— 从“裸奔“到“穿衣服“,从“重复造轮子“到“站在巨人肩膀上“
java·开发语言
Escalating_xu27 分钟前
【C 语言】深入理解指针(4):回调函数、qsort、void * 与泛型排序的模拟实现
java·c语言·开发语言
Shaoshing34 分钟前
雪花算法
java
w_zero_one1 小时前
链表(4)
java·数据结构·算法
默_笙1 小时前
🍔 中间件不只是打日志:四个钩子、一次短路,和自带的工具
前端·javascript
见叶之秋1 小时前
C++ 泛型世界的两块拼图:容器适配器与仿函数
java·开发语言
程序员老赵1 小时前
Docker 部署 Dolibarr:轻松搭建开源 ERP/CRM 平台
运维·前端·后端
MayBaymax2 小时前
MQ 基础概念与架构
java·中间件·架构·java-rocketmq
星禾元亨2 小时前
同一件事有三份资料,AI 该信哪一份?冲突判定、优先级链与处置流程
前端·人工智能
Dovis(誓平步青云)2 小时前
家里设备越来越多,如何用一张空间地图控制灯光和温度![
android·java·前端·javascript·人工智能·电脑