-
默认exception有message信息,所以不需要重复定义
错误处理需要一个统一的枚举(Enum)类型来维护,这样在异常处理逻辑变得复杂的时候可以
减小维护难度,增加代码复用性!
查看全部 -
异常数据不能与result统一
查看全部 -
前置通知(@Before):执行目标方法前拦截到的方法。只需要一个连接点,JoinPoint,即可获取拦截目标方法以及请求参数。
后置通知(@After):执行目标方法后拦截到的方法,不管方法是否抛出异常,都会走这个方法。只需要一个连接点,JoinPoint,即可获取当 前结束的方法名称。
返回通知(@AfterReturning):在方法正常执行通过之后执行的通知叫做返回通知。此时注意,不仅仅使用JoinPoint获取连接点信息,同时要在返回通知注解里写入,resut="result"。在切面方法参数中加入Object result,用于接受返回通知的返回结果。如果目标方法方法是void返回类型则返回NULL
异常通知(@AfterThrowing): 在执行目标方法过程中,如果方法抛出异常则会走此方法。和返回通知很相似,在注解中加入,throwing="ex",在切面方法中加入Exection ex用于接受异常信息
环绕通知(@Around):环绕通知需要携带ProceedingJoinPoint 这个类型的参数,环绕通知类似于动态代理的全过程ProceedingJoinPoint类型的参数可以决定是否执行目标函数环绕通知必须有返回值。其实就是包含了所有通知的全过程
查看全部 -
不要写重复代码:
LOW
修改起来麻烦
查看全部 -
编写一个记录请求的类,类里面有一个属性,查看全部
-
使用Aop处理的时候加注解@Aspact @Component查看全部
-
execution()是最常用的切点函数,其语法如下所示:
整个表达式可以分为五个部分:
1、execution(): 表达式主体。
2、第一个*号:表示返回类型,*号表示所有的类型。
3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service.impl包、子孙包下所有类的方法。
4、第二个*号:表示类名,*号表示所有的类。
5、*(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。
查看全部 -
切面对象的中的@before @after注解指的是切面之前或之后执行的动作。
查看全部 -
两个共同部分可以作为切面
查看全部 -
在领域模型girl中声明如下:
@Min(value = 18, message = "未成年少女禁止入门")
在控制器的验证方法中加入:
@PostMapping(value = "/girls") public Result girlAdd(@Valid Girl girl, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultUtil.error(1, bindingResult.getFieldError().getDefaultMessage()); } girl.setCupSize(girl.getCupSize()); girl.setAge(girl.getAge()); return ResultUtil.success(girlRepository.save(girl)); }
@valid用于验证参数的正确性,BindingResult对象用来显示错误信息!
查看全部 -
AOP面向切面编程给我一个简单明了的例子就是:web应用中所有的URI请求都要经过安全验证,这是所有对象都有的共同性,显然,这么对象之间没有必要构造的继承关系,因为那样不太合适。面向切面的核心体现在对URI所对应的资源进行响应前,构造一个切入点,所有URI请求都要经过切入点的过滤和处理。大概这就是AOP
查看全部 -
mvn clean package 用于项目打包;
mvn clean package -Dmaven.test.skip=true 用于打包跳过单元测试
查看全部 -
@AutoConfigureMockMvc用于构造请求字符串;
查看全部 -
错误处理需要一个统一的枚举(Enum)类型来维护,这样在异常处理逻辑变得复杂的时候可以
减小维护难度,增加代码复用性!
查看全部 -
Spring框架只会对RuntimeException进行事务回滚!
查看全部
举报