Springboot核心技术

【视频笔记】Spring boot进阶之Web进阶

2017-10-10  本文已影响46人  老胡聊聊天

该笔记是看视频的记录,视频地址:http://www.imooc.com/learn/810

一、使用@Valid做表单验证

domain中定义valid规则 Controller增加Valid注解,并且对BindingResult做处理

二、使用AOP处理请求

请求方法前打印日志 请求方法后打印日志 获取返回值 定义一个@Pointcut然后引用

三、统一异常处理

1、异常情况处理

成功则返回新增的girl,失败返回错误信息 成功时:返回了成功的对象 失败时:返回错误信息

2、更好的处理方式

上面的返回结果并不友好,不方便前端处理,我们期望的是下图这样的:包括一个code表示成功失败,msg表示处理结果信息,data表示对象信息

友好的返回结果

下面来看实现:


定义一个Result类作为返回对象 定义一个Util方便操作 引用代码

3、Exception的处理

当系统发生异常时


当系统发生异常时

前台就会收到这样的消息


前台就会收到这样的消息

这不是我们想要的,我们希望发生异常的时候依然可以正常返回,可以通过一个ExceptionHandle来实现

ExceptionHandle中指定handle的异常类型和返回值

就得到了我们想要的返回格式

就得到了我们想要的返回格式

4、异常精细化处理:为异常编号

实现一个Exception的子类,增加code属性 不同业务抛出不同的code 捕获异常,如果是GirlException,则抛出返回的code,否则使用统一的code

5、异常编号用枚举类型代替

100、101这种编号写在具体业务逻辑里面显然不妥,时间长了,前台抛出一个100的异常,我们很难再想起这个100到底代表什么,也不好找到这些代码,通常的做法是把所有异常编号都放在一个枚举类型中,这样就好查啦

如下图,我们新建了一个枚举类,有了这个枚举类,我们再增加异常类型、修改异常提示,就再也不用去茫茫code海里面去搜索了。

1、新建一个枚举类,定义异常编号和中文提示 2、throw异常里面,就不写code和msg了,用枚举值代替 3、修改GrilException的参数 4、调用结果也是一样的

四、单元测试

1、测试Service

测试Service 测试Controller

2、测试API

测试API:Status 测试API:返回值 上面的例子是匹配返回值和abc,显然不相等,所以报错

maven打包的时候也会自动运行这些单元测试,执行mvn clean package

自动运行单元测试,并报出一个异常
上一篇 下一篇

猜你喜欢

热点阅读