-
这种方式,会将异常捕获,然后返回的内容就会按照我们想要的方式返回
过程:
service里面如果验证不通过的话,就直接往外面抛异常
controller直接调用service的方法
这个时候不需要对service的返回进行判断,因为已经通过抛出异常来解决问题了
由expection handle来处理这个异常
查看全部 -
如果不建异常捕获的包,抛出的内容会很多,我们需要建立捕获异常的方法
查看全部 -
抛异常会一层一层往外抛,从service,然后接着抛到controller
查看全部 -
异常处理的统一格式,json:code, msg, data
查看全部 -
@AfterReturn注解,可以在console打印出返回的object及内容(可以像添加getter和setter一下添加toString方法)
查看全部 -
获取类方法的方式:
首先传参加入joinPoint
然后在输出时使用joinPoint的方法
查看全部 -
日志的记录方式,和在string里面进行输出的传参方式
查看全部 -
将@Before请求这个路径前的作输出改成实际要做的操作,记录一些信息(http请求内容):
url:
注意HttpServletRequest要选javax.servlet.http
method
ip
类方法
参数
查看全部 -
采用记日志的方式打印的好处:能够显示(时间 INFO 进程号 【nio-端口-exec-1】 哪个方法哪个包下打的日志)
查看全部 -
实际逻辑代码部分:
@After注解:注解括号里面的内容可以和Before注解写得一模一样
这里发现我们会有重复的代码(坏处:1太low,2修改起来会特别麻烦),解决方案:用@Printcut注解单独对相同部分定义一个方法,然后使用这个方法名作为代替放入Before和After注解里面
System.out.println的另一种方式,Logger
在类内部声明Logger(org.slf4j: spring自带的日志框架,底层实现使用的是logback)
在方法里面使用logger.info或者logger.error打印
查看全部 -
正式逻辑代码:
Http请求到这些api的时候就把这些记录下来:@Before注解表示在方法执行之前就执行这个方法(记得有个小技巧,先写下下面的public void log(){}代码框架,这样才会有上层的Before的内容提示)
拦截方法时,在方法的参数里面加..表示不管里面什么参数,都会进行拦截
如果要对所有的方法都进行拦截,就写成controller.*(..)
查看全部 -
防止没有登录的用户对api进行调用成功
(通常方法是在每个api前面进行添加判断,这样每个api都加太累了)
使用AOP来进行的步骤:
添加依赖:spring-boot-starter-aop
(往常的做法是要在启动类加一个注解,但是aop不需要加)
建立处理文件:新建一个包叫aspect,然后在底下建一个java class(不要选aspect)叫HttpAspect,加上注解@Aspect和@Component,然后开始写逻辑代码
查看全部 -
构造方法的解决方案来进行控制是否登录的用户才可以访问api的方式行不通:当spring程序运行的时候就会把这些类给实力化了,当一次http请求来的时候不会再执行这个构造方法了,所以这样是行不通的。
查看全部 -
事务只会对RuntimeException 进行事务回滚,不会对Exception进行回滚。
查看全部 -
AOP的例子
查看全部
举报