aop拦截器什么时候触发
时间: 2023-08-11 18:56:59 浏览: 44
AOP(面向切面编程)拦截器在特定的切点处触发。切点是程序执行中的特定位置,可以是方法的调用、异常抛出、字段访问等。当程序达到指定的切点时,AOP拦截器会被触发并执行相应的操作。拦截器可以在方法执行前、执行后、抛出异常时等不同的时间点进行触发。这样,我们可以通过AOP拦截器来实现一些横切关注点的功能,如日志记录、事务管理等。
相关问题
springboot的源码中aop拦截器什么时候触发
在Spring Boot中,AOP拦截器的触发与Spring框架的AOP实现方式有关。Spring Boot默认使用的是Spring Framework中的动态代理方式来实现AOP。
在动态代理方式下,AOP拦截器会在目标方法被调用时触发。当一个被AOP代理的方法被调用时,代理对象会在目标方法执行前后进行拦截,并执行相应的操作。例如,可以在方法执行前记录日志,或者在方法执行后进行事务管理。
需要注意的是,Spring Boot中AOP拦截器的触发也受到切点表达式的限制。切点表达式定义了哪些方法或类应该被拦截器所拦截。只有当目标方法符合切点表达式的条件时,拦截器才会触发执行。
总结来说,Spring Boot中的AOP拦截器会在被代理的目标方法被调用时触发,并且受到切点表达式的限制。
过滤器和拦截器的区别
过滤器和拦截器都是基于AOP思想实现的,用来处理某个统一的功能,但二者有以下几点不同:
1.出身不同:过滤器是Servlet规范中定义的,而拦截器是SpringMVC框架中定义的。
2.触发时机不同:过滤器会先执行,然后才会执行拦截器,最后才会进入真正的要调用的方法。而拦截器是在方法调用前后执行的。
3.实现不同:过滤器是基于回调函数实现的,而拦截器是基于Java的反射机制实现的。
4.支持的项目类型不同:过滤器可以用于所有的JavaWeb项目,而拦截器只能用于SpringMVC框架中。
5.使用的场景不同:过滤器通常是用来进行全局过滤的,而拦截器是用来实现某项业务拦截的。