时间:2017年3月19日星期日
说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com
教学示例源码:https://github.com/zccodere/s...
个人学习源码:https://github.com/zccodere/s...
第一章:课程介绍
1-1 课程介绍
本课程紧接着《2小时学会SpringBoot》课程,请先看入门课。
传送门:https://segmentfault.com/a/11...
web进阶
1.使用@Valid表单验证
2.使用AOP处理请求
3.统一异常处理
4.单元测试
第二章:Web进阶
2-0 表单验证
1.在实体Bean里需要校验的字段上面添加注解
2.在接收参数时,使用@Valid注解进行校验
2-1 使用AOP处理请求(上)
AOP统一处理请求日志
也谈AOP
1.AOP是一种编程方式
--与语言无关,是一种程序设计思想
--面向切面(AOP)Aspect Oriented Programming
--面向对象(OOP)Object Oriented Programming
--面向过程(POP)Procedure Oriented Programming
2.面向过程到面向对象
--面向过程:假如下雨了,我打开了雨伞
--面向对象:天气->下雨,我->打伞
3.换个角度看世界,换个姿势处理问题
4.将通用逻辑从业务逻辑中分离出来
AOP示例
提取执行相同的代码为一个切面
2-2 使用AOP处理请求(中)
编写切面通知执行方法
@Aspect:声明当前类是一个切面处理类
@Component:声明当前类是一个Bean,由Spring的IOC容器进行管理
@Pointcut:声明需要处理的切点
spring aop通知(advice)分成五类:
@Before:前置通知[Before advice]:在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常。
@AfterReturning:正常返回通知[After returning advice]:在连接点正常执行完成后执行,如果连接点抛出异常,则不会执行。
@AfterThrowing:异常返回通知[After throwing advice]:在连接点抛出异常后执行。
@After:返回通知[After (finally) advice]:在连接点执行完成后执行,不管是正常执行完成,还是抛出异常,都会执行返回通知中的内容。
@Around:环绕通知[Around advice]:环绕通知围绕在连接点前后,比如一个方法调用的前后。这是最强大的通知类型,能在方法调用前后自定义一些操作。环绕通知还需要负责决定是继续处理join point(调用ProceedingJoinPoint的proceed方法)还是中断执行。
2-3 使用AOP处理请求(下)
2-4 统一异常处理(上)
什么是异常处理?
如果不加异常处理的话,程序出错了,用户可能不知道是啥原因。加上处理后,比如加上友好信息等用户能知道错在哪。
为什么要统一异常处理?
1、在框架层面封装checked exception,将其转化为unchecked exception,避免开发过程中编写繁冗的try...catch代码。
2、业务层面的开发,根据程序代码职责定义不同的RuntimeException(它就是unchecked exception,一般定义为RuntimeException的子类)
3、通过前两个观点,系统中自定义的异常将只存在unchecked exception,系统只在于客户端交换数据的上层,设置统一异常处理机制,并将一些异常转化为用户所能理解的信息传达给用户。
4、其他如业务层,数据持久层,等底层只负责将异常抛出即可,但要注意不要丢失掉异常堆栈(这一点是初学者容易犯的一个错误)。
以上答案内容节选自:http://redhacker.iteye.com/bl...
例子:获取某女生的年龄并判断,小于10,返回“应该在上小学”,大于10且小于16,返回“可能在上初中”。
可能比较容易想到的解决方案是:通过标识来传递信息,比如
2-5 统一异常处理(中)
使用统一异常处理后,则为另一种解决方式
步骤一:自定义异常
步骤二:全局异常统一处理类
步骤三:使用自定义异常
2-6 统一异常处理(下)
使用枚举进行优化响应编码及响应消息,便于统一维护
步骤一:定义枚举类
步骤二:优化自定义异常
步骤三:使用自定义异常
2-7 单元测试
目录
测试Service
测试API
测试Service
测试Controller
第三章:课程总结
3-1 课程总结
web进阶
1.使用@Valid表单验证
2.使用AOP处理请求
3.统一异常处理
4.单元测试
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。