欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spring AOP 踩坑记录 之 System.out.println

程序员文章站 2022-03-23 22:12:35
Controller配置代码如下:@RestControllerpublic class HelloWorldControlller { @RequestMapping("sayHello") public Map sayHello(String name){ System.out.println("被拦截方法开始执行,参数为" + name); Map map =...

Controller配置代码如下:

@RestController
public class HelloWorldControlller {

    @RequestMapping("sayHello")
    public Map<String,String> sayHello(String name){
        System.out.println("被拦截方法开始执行,参数为" + name);
        Map<String,String> map = new HashMap<>();
        map.put("1","神雕侠侣");
        map.put("2","射雕英雄传");
        map.put("3","笑傲江湖");
        map.put("4","天龙八部");
        map.put("5","倚天屠龙记");
        System.out.println("被拦截方法执行结束!");
        return map;
    }
}

AOP Advice配置代码如下:

@Component
@Aspect
public class BaseAop {

    @Pointcut(value = "execution(* com.example.demo.controller.*.*(..))")
    public void point(){

    }

    @Before("point()")
    public void before(JoinPoint joinPoint){
        System.out.println("-----------before开始执行--------------");
    }

    @After("point()")
    public void after(JoinPoint joinPoint){
        System.out.println("-----------after开始执行--------------");
    }

    @AfterReturning(pointcut = "point()",returning = "ret")
    public void afterReturn(Object ret){
        System.out.println("-----------afterReturn开始执行--------------");
    }

    @Around("point()")
    public  Object around(ProceedingJoinPoint pjp){
        System.out.println("-----------环绕增强开始:--------------");
        Object o = null;
        try {
            o = pjp.proceed();
            System.out.println("-----------环绕增强结束:--------------");
        }catch (Throwable e){
            e.printStackTrace();
        }
        return o;
    }

}

运行多次后的结果,增强了个寂寞,当然在继续执行的话还是会有别的顺序出现

Spring AOP 踩坑记录 之 System.out.println

将代码中的System.out.println换成log日志方式打印之后,就没有问题了

 

猜测是因为System.out.println的线程问题,因为有synchronized的存在,线程资源竞争,具体是不是这个原因暂时还不知道,如有大佬指教,不胜感激

 

本文地址:https://blog.csdn.net/u014608971/article/details/109987747

相关标签: Java aop Aspect

上一篇: list分组

下一篇: Protecting the Flowers