SpringBoot Controller
SpringBoot Web入门
- Spring Boot将传统Web开发的mvc、json、tomcat等框架整合,提供了spring-boot-starter-web组件,简化了Web应用配置。
- 创建Spring Boot项目勾选Spring Web选项后,会自动将spring-boot-starter-web组件加入到项目中。
- spring-boot-starter-web启动器主要包括web、webmvc、.json、tomcat等基础依赖组件,作用是提供Wb开发场景所需的所有底层依赖。
- webmvc为Web开发的基础框架,json为SON数据解析组件,tomcat为自带的容器依赖。
控制器
介绍
- Spring Boot提供了@Controller和@RestControllerp两种注解来标识此类负责接收和处理HTTP请求。
- 如果请求的是页面和数据,使用@Controlleri注解即可;如果只是请求数据,则可以使用@RestControlleri注解。
Controller
1 |
|
- 示例中返回了hello页面和name的数据,在前端页面中可以通过${name参数获取后台返回的数据并显示。
- Controlleri通常与Thymeleaft模板引擎结合使用。
RestController
1 |
|
- 默认情况下,@RestController注解会将返回的对像数据转换为JSON格式。
控制器的路由映射
@RequestMapping的路由映射
- @RequestMapping注解主要负责URL的路由映射。它可以添加在Controller类或者具体的方法上。
- 如果添加在Controller类上,则这个Controller中的所有路由映射都将会加上此映射规则,如果添加在方法上,则只对当前方法生效。
- @RequestMapping注解包含很多属性参数来定义HTTP的请求映射规则。
@RequestMapping的属性参数
- value:请求URL的路径,支持URL模板、正则表达式
- method:HTTP请求方法
- consumes:请求的媒体类型(Content-Type),如application/json
- produces:响应的媒体类型
- params,headers:请求的参数及请求头的值
通常consumes,produces,params和headers参数很少涉及
value
1 | - 的value属性用于匹配URL映射,value支持简单表达式 |
Method 匹配
1 | HTTP请求Method有GET、POST、PUT、DELETE等方式。HTTP支持的全部Method |
方法的参数映射
1 |
|
@RequestParam可以将内容映射到变量中,切必须要传递内容的参数
Postman模拟多个请求
- 点击“New”按钮 或者 选择“File” > “New Tab”,这将打开一个新的请求标签页。
- 选择请求类型:在请求输入框左侧有一个下拉菜单,您可以选择请求的类型,例如
GET
、POST
、PUT
、DELETE
等。 - 在请求 URL 输入框中输入您的本地服务器地址。例如,如果服务器运行在
localhost
的端口8080
上,并且您想访问/api/data
路径,那么输入:http://localhost:8080/api/data
使用@RequestBody接受Post请求的Json信息
在 Spring Boot 中,使用 @RequestBody
注解可以轻松地接收 POST 请求中的 JSON 格式信息,并将其绑定到 Java 对象上。下面是一个详细的步骤说明,展示如何在 Spring Boot 应用程序中使用 @RequestBody
接收 POST 请求的 JSON 数据。
1. 创建一个 Java 类来表示 JSON 数据
首先,创建一个 POJO 类(Plain Old Java Object),用于映射 JSON 数据。例如,我们假设我们想接收一个用户的基本信息(如名字和邮箱),可以创建一个 User
类:
1 | package com.example.demo.model; |
2. 创建一个 Spring Boot 控制器类
接下来,创建一个控制器类,定义一个接收 POST 请求的方法,并使用 @RequestBody
注解来绑定请求中的 JSON 数据到 User
对象上。
1 | package com.example.demo.controller; |
3. 配置 Spring Boot 应用程序
- 确保你的 Spring Boot 项目有以下依赖(通常在
pom.xml
文件中)。这些依赖通常默认在spring-boot-starter-web
中:
1 | <dependencies> |
- 确保 Spring Boot 应用程序主类(即包含
main
方法的类)上有@SpringBootApplication
注解。
4. 运行 Spring Boot 应用程序
运行你的 Spring Boot 应用程序(例如,通过使用 IDE 的运行按钮,或者在命令行中使用 mvn spring-boot:run
)。
5. 使用 Postman 测试 POST 请求
-
打开 Postman 并创建一个新的 POST 请求。
-
设置请求 URL 为:
http://localhost:8080/api/users
(默认端口是 8080)。 -
在
Body
标签页中选择raw
,并将格式设置为JSON
。 -
输入 JSON 数据,例如:
1
2
3
4{
"name": "John Doe",
"email": "[email protected]"
} -
点击
Send
按钮发送请求。
6. 查看响应
在 Postman 中,你应该看到服务器返回的响应,例如:
1 | User is created with name: John Doe and email: [email protected] |
同时,在 Spring Boot 控制台中,你应该看到打印的用户信息:
1 | Received user: User{name='John Doe', email='[email protected]'} |
结论
通过使用 @RequestBody
注解,Spring Boot 可以轻松地将 POST 请求中的 JSON 数据映射到 Java 对象。这种方法适用于创建 RESTful API,处理复杂的 JSON 数据输入。