1. 在Spring容器启动时,扫描所有的类,找到标注了@Around注解的方法。
  2. 根据@Around注解的属性值,解析出切点表达式。
  3. 根据切点表达式,找到需要被拦截的方法。
  4. 创建代理对象,将被拦截的方法包装在代理对象中。
  5. 当调用被拦截的方法时,代理对象会先执行@Around注解的方法,再执行被拦截的方法。
  6. 在@Around注解的方法中,可以通过ProceedingJoinPoint对象获取被拦截的方法的参数和返回值,可以对其进行修改。
  7. 如果在@Around注解的方法中抛出异常,被拦截的方法不会执行,异常会被抛出。
  8. 如果被拦截的方法返回值是void,@Around注解的方法可以返回任何值,但不会对最终结果产生影响。
  9. 如果被拦截的方法返回值不是void,@Around注解的方法必须返回与被拦截的方法返回值类型相同的值。
Around注解的执行流程

原文地址: https://www.cveoy.top/t/topic/bJdw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录