SpringBoot之第一个Restfu示例
前面把数据库研究了差不多了。。。。今天开始研究Control层了。如何接收RestFul的Http请求。。
这里在类上面加上@RestController 这个类就可以接收rest的请求了。
但是http请求有千万种,我们如何知道哪个请求进入哪个类呢?
这里就需要引入另外一个注解
@RequestMapping("/app")
这个注解就是说http的url中/app的进入这个分支
比如/app/login 进入哪个分支呢?
我们再写一个函数,把@PostMapping("/login") 把注解加在上面。
如果我在请求的时候,带有一个json呢?
这里又要引入一个注解
@RequestBody
而且后面还能跟一个类,这个类就是已经把json反序列化的类。
好了,下面试一下 定义一个登陆类
@Data
@ApiModel(value = "登录表单")
public class formlogin {@ApiModelProperty(value = "登陆名")@NotBlank(message="登陆名")private String user;@ApiModelProperty(value = "密码")@NotBlank(message="密码不能为空")private String psw;
}
再写个入口处理类
@RestController
@RequestMapping("/app")
public class firtsRestful {@PostMapping("/login")@ApiOperation("登录")public String Login(@RequestBody formlogin formlogin ){System.out.println("user" +formlogin.getUser());System.out.println("psw"+formlogin.getPsw());return "11";}
}
突然发现swagger-ui居然还能测试接口。。。。
可以编辑发送的数据:
下面是返回的数据
一切完美。
另外,应答也可以应答json字符串,我们只需要定义一个HashMap就可以了。看下面的示例
@PostMapping("/login")@ApiOperation("登录")public HashMap<String,Object> Login(@RequestBody formlogin formlogin ){System.out.println("user" +formlogin.getUser());System.out.println("psw"+formlogin.getPsw());System.out.println(formlogin);HashMap<String,Object> Rsp = new HashMap<>();Rsp.put("token", 123);Rsp.put("expire", "3600");return Rsp;}
应答如下:
这里注意一下,字符串和整数在json中的区别。字符串是有“”号的,而整数是没有的。
还可以实现抛出异常,这样返回值就不是200了,看下面的例子
增加了一个异常
int aa =0;if ((aa == 0)){throw new Exception("未添加资产,请重新添加");}
看测试结果:返回的是500 然后Message就是异常的字符串
SpringBoot之第一个Restfu示例相关推荐
- 【SpringBoot】写一个具有留言墙功能的JavaWeb
[SpringBoot]写一个具有留言墙功能的JavaWeb 项目已经部署上线 一.需求说明 二.概要设计 三.详细设计 (一)数据库设计 (二)页面设计 (三)功能设计 (四)项目结构 四.具体代码 ...
- 【SpringBoot】编写一个自己的Starter
一.什么是Starter? 在开发过程中我们就经常使用到各种starter,比如mybatis-spring-boot-starter,只需要进行简单的配置即可使用,就像一个插件非常方便.这也是Spr ...
- Java黑皮书课后题第8章:*8.8(所有最近的点对)修改程序清单8-3,找出所有所有具有最小距离的点对。下面是一个运行示例
*8.8(所有最近的点对)修改程序清单8-3,找出所有所有具有最小距离的点对.下面是一个运行示例 题目 题目描述与运行示例 程序清单8-3 破题 代码 题目 题目描述与运行示例 *8.8(所有最近的点 ...
- Wordcount on YARN 一个MapReduce示例
Hadoop YARN版本:2.2.0 关于hadoop yarn的环境搭建可以参考这篇博文:Hadoop 2.0安装以及不停集群加datanode hadoop hdfs yarn伪分布式运行,有如 ...
- java播放声音类和一个简单示例
java播放声音类和一个简单示例 播放声音的类 复制代码 代码如下: import java.io.File; import java.io.IOException; import javax.so ...
- C++之关于初始化列表(Initialization List)的一个补充示例
相关博文:C++新特性探究(七):初始化列表(Initialization List) 相关博文:C++新特性探究(八):初始化列表(Initialization List)再探究 相关博文:C++之 ...
- Kerberos工作流:一个简单示例
说明:内容来自<Hadoop安全-大数据平台隐私保护>,此处记录仅是便于快速回顾. 现在通过一个工作流示例,展示 Kerberos 大概是怎么工作的.首先定义所有出现的组件. EXAMPL ...
- springboot 加载一个properties文件转换为对象、List和Map数据结构
springboot 加载一个properties文件转换为对象.List和Map数据结构 一.springboot 加载一个properties文件转换为对象 1.1.配置文件-blog.prope ...
- SpringBoot+Redis 实现一个微博热搜!
大家好,我是宝哥! 使用java和redis实现一个简单的热搜功能,具备以下功能: 搜索栏展示当前登陆的个人用户的搜索历史记录,删除个人历史记录 用户在搜索栏输入某字符,则将该字符记录下来 以zset ...
最新文章
- MAC下的反编译、反汇编和调试神器Hopper Disassembler
- 科技|全球首款飞行汽车开始量产!下月开始预售,2023年后或可实现一键打“飞车”...
- intellij idea使用的准备工作
- 数据结构实验之查找七:线性之哈希表
- .net 技术类网址
- 程序高手和菜鸟的区别是什么?
- linux重定向输出时加时间变量,shell 重定向错误输出到文件 加上时间(标明错误抛出的时间)...
- 教你如何去淘便宜机票
- Android笔记 fragment的生命周期
- CSS 浅析position:relative/absolute定位方式
- 标记语言——邪恶的表格?
- java数字代码_Java基础08—数字类处理(示例代码)
- 记忆模糊知识点5-11
- 使用GPS经纬度定位附近地点(某一点范围内查询)
- 软件测试电商web项目如何描述,测试web项目实战
- 内外兼修的移动办公伴侣:联想YOGA S730评测体验
- 商家APP店内点餐开启有桌台点餐模式
- freeSSL申请证书加阿里云域名解析加nginx配置
- 计算机不能正常开机怎么处理,电脑不能正常启动的原因和处理步骤
- python画爱心树_Python在情人节画棵爱心树/爱情树
热门文章
- 索爱确认2月13日发布Xperia Play
- yue-library是一个基于SpringBoot封装的基础库
- Node.js API 全栈 开发框架
- 关于RNNLM的思考,特别是与HMM,n-gram的区别
- mysql常用调试工具_最常用的8款PHP调试工具
- 应用神经网络相关pre-processing(预处理 )
- ViT (Vision Transformer) ---- Transformer Model(2)
- tensorflow2.1学习--认识张量和常用函数一
- android 关闭上下文菜单,【Android笔记】ContextMenu上下文菜单
- c语言123 u0010%10,mbsrtowcs_s