网关是一个服务 springmvc拦截器是在服务当中这两是两种技术 ,网关当中有过滤器 请求会在网关进行负载均衡然后进行转发
AOP面向切面编程
@Aspect注解描述的类我们称为切面对象,此对象负责定义切入点和通知
切入点 那些方法执行时我们进行功能拓展
@Pointcut("@annotation(.....)")通过@pointcut注解定义切入点表达式
@annotation(自己定义的注解)自己定义的注解修饰的方法为切入点方法,就在这个方法上锦上添花
通知 所有的拓展逻辑都会写到通知方法中
@Around("...()")
一个切入点方法AOP切面有多个时会有优先级 优先级由一个int数值来决定数值越小优先级越高,默认优先级比较低
1@Around(执行链.proceed()方法前)->1@before()->2@Around(后)->2@before->........->method->....2@Around(后)->2@after->2@AfterThrowing或2@AfterReting->1@Around(后)->1@Afterthrowing或1@AfterReting
proceed()方法为执行链用来执行后面的切面和方法,如果他之后接入return 返回值 则整个切面包括方法会被拦截不会执行
先是JDK 或CGLIB动态代理对象 相当于经过拦截器,在拦截器中调用 ,