Search code examples
javaspringaopaspectjspring-aop

Java Aspect returned value to be used in the method


I have an @After java aspect that runs certain logic. I need it to return a result (an object) that can be used in the methods intercepted by the aspect's pointcut. Is it possible?


Solution

  • What you need is @Around which allows you to return whatever you want to the advised object:

    @Around("com.xyz.myapp.UserService.createUser()")
    public Object userCreationAdvice(ProceedingJoinPoint pjp) throws Throwable {
        //Do something if needed before method execution
        Object retVal = pjp.proceed();
        //Do something if needed after method execution
        return retVal;
    }