Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

aopdemo

使用Spring AOP来进进行服务/执行方法的"权限认证"

@Around这个注解有两大经典应用。
1.权限认证的拦截
    proceedingJoinPoint.getArgs()可以获取method的参数,可以对参数进行认证,来确定这个方法是否
    有权限执行。参数一般用自己的自定义的class,这样比较容易快速去匹配,一旦匹配上了Passport这个class
    说明是需要进行认证的. 再根据Passport#userId, Passport#token进行认证。
    如果认证通过就执行Object obj = proceedingJoinPoint.proceed(); return obj;

2.方法/服务的监控
    在proceedingJoinPoint.proceed()执行的前后,获取时间戳值,然后两值进行相减,得到方法执行的耗时。
    还可以对执行的次数进行累积。 耗时经过采集,可以得到最大值,平均值,请求频率等等。
3.自定义日志,或者日志的集中采集。  
    proceedingJoinPoint.getArgs()可以获取method的参数。 参数和请求的时间戳都是日志的重要数据。
    这样进行统一的日志采集,避免了跟业务代码的耦合。并且能够集中上传日志,适合大型系统的日志集中处理。