前面把数据库研究了差不多了。。。。今天开始研究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示例相关推荐

  1. 【SpringBoot】写一个具有留言墙功能的JavaWeb

    [SpringBoot]写一个具有留言墙功能的JavaWeb 项目已经部署上线 一.需求说明 二.概要设计 三.详细设计 (一)数据库设计 (二)页面设计 (三)功能设计 (四)项目结构 四.具体代码 ...

  2. 【SpringBoot】编写一个自己的Starter

    一.什么是Starter? 在开发过程中我们就经常使用到各种starter,比如mybatis-spring-boot-starter,只需要进行简单的配置即可使用,就像一个插件非常方便.这也是Spr ...

  3. Java黑皮书课后题第8章:*8.8(所有最近的点对)修改程序清单8-3,找出所有所有具有最小距离的点对。下面是一个运行示例

    *8.8(所有最近的点对)修改程序清单8-3,找出所有所有具有最小距离的点对.下面是一个运行示例 题目 题目描述与运行示例 程序清单8-3 破题 代码 题目 题目描述与运行示例 *8.8(所有最近的点 ...

  4. Wordcount on YARN 一个MapReduce示例

    Hadoop YARN版本:2.2.0 关于hadoop yarn的环境搭建可以参考这篇博文:Hadoop 2.0安装以及不停集群加datanode hadoop hdfs yarn伪分布式运行,有如 ...

  5. java播放声音类和一个简单示例

    java播放声音类和一个简单示例 播放声音的类 复制代码 代码如下:  import java.io.File; import java.io.IOException; import javax.so ...

  6. C++之关于初始化列表(Initialization List)的一个补充示例

    相关博文:C++新特性探究(七):初始化列表(Initialization List) 相关博文:C++新特性探究(八):初始化列表(Initialization List)再探究 相关博文:C++之 ...

  7. Kerberos工作流:一个简单示例

    说明:内容来自<Hadoop安全-大数据平台隐私保护>,此处记录仅是便于快速回顾. 现在通过一个工作流示例,展示 Kerberos 大概是怎么工作的.首先定义所有出现的组件. EXAMPL ...

  8. springboot 加载一个properties文件转换为对象、List和Map数据结构

    springboot 加载一个properties文件转换为对象.List和Map数据结构 一.springboot 加载一个properties文件转换为对象 1.1.配置文件-blog.prope ...

  9. SpringBoot+Redis 实现一个微博热搜!

    大家好,我是宝哥! 使用java和redis实现一个简单的热搜功能,具备以下功能: 搜索栏展示当前登陆的个人用户的搜索历史记录,删除个人历史记录 用户在搜索栏输入某字符,则将该字符记录下来 以zset ...

最新文章

  1. MAC下的反编译、反汇编和调试神器Hopper Disassembler
  2. 科技|全球首款飞行汽车开始量产!下月开始预售,2023年后或可实现一键打“飞车”...
  3. intellij idea使用的准备工作
  4. 数据结构实验之查找七:线性之哈希表
  5. .net 技术类网址
  6. 程序高手和菜鸟的区别是什么?
  7. linux重定向输出时加时间变量,shell 重定向错误输出到文件 加上时间(标明错误抛出的时间)...
  8. 教你如何去淘便宜机票
  9. Android笔记 fragment的生命周期
  10. CSS 浅析position:relative/absolute定位方式
  11. 标记语言——邪恶的表格?
  12. java数字代码_Java基础08—数字类处理(示例代码)
  13. 记忆模糊知识点5-11
  14. 使用GPS经纬度定位附近地点(某一点范围内查询)
  15. 软件测试电商web项目如何描述,测试web项目实战
  16. 内外兼修的移动办公伴侣:联想YOGA S730评测体验
  17. 商家APP店内点餐开启有桌台点餐模式
  18. freeSSL申请证书加阿里云域名解析加nginx配置
  19. 计算机不能正常开机怎么处理,电脑不能正常启动的原因和处理步骤
  20. python画爱心树_Python在情人节画棵爱心树/爱情树

热门文章

  1. 索爱确认2月13日发布Xperia Play
  2. yue-library是一个基于SpringBoot封装的基础库
  3. Node.js API 全栈 开发框架
  4. 关于RNNLM的思考,特别是与HMM,n-gram的区别
  5. mysql常用调试工具_最常用的8款PHP调试工具
  6. 应用神经网络相关pre-processing(预处理 )
  7. ViT (Vision Transformer) ---- Transformer Model(2)
  8. tensorflow2.1学习--认识张量和常用函数一
  9. android 关闭上下文菜单,【Android笔记】ContextMenu上下文菜单
  10. c语言123 u0010%10,mbsrtowcs_s