Spring Cloud Spring Boot mybatis分布式微服务云架构(十二)返回JSON格式
在上述例子中,通过@ControllerAdvice统一定义不同Exception映射到不同错误处理页面。而当我们要实现RESTful API时,返回的错误是JSON格式的数据,而不是HTML页面,这时候我们也能轻松支持。
本质上,只需在@ExceptionHandler之后加入@ResponseBody,就能让处理函数return的内容转换为JSON格式。
下面以一个具体示例来实现返回JSON格式的异常处理。
创建统一的JSON返回对象,code:消息类型,message:消息内容,url:请求的url,data:请求返回的数据
public class ErrorInfo<T> {
public static final Integer OK = 0;
public static final Integer ERROR = 100;
private Integer code;
private String message;
private String url;
private T data;
// 省略getter和setter
}
创建一个自定义异常,用来实验捕获该异常,并返回json
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
Controller中增加json映射,抛出MyException异常
@Controller
public class HelloController {
@RequestMapping("/json")
public String json() throws MyException {
throw new MyException("发生错误2");
}
}
为MyException异常创建对应的处理
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = MyException.class)
@ResponseBody
public ErrorInfo<String> jsonErrorHandler(HttpServletRequest req, MyException e) throws Exception {
ErrorInfo<String> r = new ErrorInfo<>();
r.setMessage(e.getMessage());
r.setCode(ErrorInfo.ERROR);
r.setData("Some Data");
r.setUrl(req.getRequestURL().toString());
return r;
}
}
启动应用,访问:http://localhost:8080/json,可以得到如下返回内容:
{
code: 100,
data: "Some Data",
message: "发生错误2",
url: "http://localhost:8080/json"
}
至此,已完成在Spring Boot中创建统一的异常处理,实际实现还是依靠Spring MVC的注解,更多更深入的使用可参考Spring MVC的文档。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
LiveVideoStackCon 2018技术培训 — 从FFmpeg视频编码到抖音式视频特效实现
LiveVideoStackCon 2018技术培训,“从FFmpeg视频编码到抖音式视频特效实现”。我们拒绝“纸上谈兵”,坚持技术讲解与实战训练相结合。门票火热发售中,8月24日前报名即可享受8折优惠。 10月19-20日,由LiveVideoStack音视频技术社区、中国最大的IT社区和服务平台CSDN联合出品,第二届LiveVideoStackCon音视频技术大会将在北京举行。本次大会将邀请70余位国内外多媒体技术专家,分享最新技术实践与应用案例。 在此之前,我们还准备了两场技术实战培训,现场讲解与实战训练相结合,帮助具有一定多媒体开发经验的技术人员,加强技术理论知识的理解,学习更多实践技巧。 抖音短视频特效实战 短视频的风潮,带来的是以年轻人为主的人群生活习惯的改变,随着快手,抖音等应用逐渐融入人们的生活,刷短视频也成为了大家打发无聊时间的新选择。而短视频的动感音乐、酷炫特效也改变了视频的固有风格,让内容变得更加丰富多彩。 本次我们邀请到了全民快乐研发高级总监展晓凯老师, 他将详细讲解抖音短视频特效的实现设计架构,并现场指导大家亲手实现“灵魂出窍”等多种酷炫特效。除此之外,在本...
-
下一篇
Spring Cloud Spring Boot mybatis分布式微服务云架构(七)开发Web应用(1)
静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。 默认配置Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static /public /resources /META-INF/resources 举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg。如能显示图片,配置成功。 渲染Web页面在之前的示例中,我们都是通过@RestController来处理请求,所以返回的内容为json对象。那么如果需要渲染html页面的时候,要如何实现呢? 模板引擎在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。 Spring Boot提供了默认配置的模板引擎主要有以下几种: Thymeleaf FreeMarker Velocity Groovy Mustache Spring Boot...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL数据库在高并发下的优化方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能