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;
    }
相关推荐
Rain的Java大神之路1 小时前
100 亿条数据如何快速写入 MySQL?从 231 天到 3.5 小时,我把面试官问懵了
java·后端·面试
程序猿乐锅1 小时前
面向对象练习:图书借阅系统里的封装、抽象类与多态
开发语言·前端·数据库·后端·python·学习·1024程序员节
老木避暑研究所1 小时前
负氧离子数据的采集、清洗与可视化:一套可复用的环境监测数据分析模板
前端·人工智能·数据分析
xyouyuweizhu1 小时前
Java IO 流详解:流的作用、流的划分与标准输入输出流
java·python·php
她的男孩1 小时前
Spring Boot 表单挂 Flowable 审批:设计器绑模型后,业务侧用注解把单子跑起来
spring boot·低代码·工作流引擎
计算机魔术师1 小时前
AI 推翻了一个当了30年地基的假设,查的人恰好是立论者
前端
范同学~1 小时前
项目添加水印
java·前端·javascript
鬼手点金1 小时前
缓存作为架构约束
开发语言·前端·人工智能·python·microsoft·缓存·架构
月夏1 小时前
前端第一次接自己的后端:mock 切真接口踩了 2 个坑,组件只改了一行 import
前端·后端·node.js
快乐的韭菜根根1 小时前
Slurm 指定 GPU 卡:`File=/dev/nvidiaX` 映射的坑与修复
java·服务器·网络