0
votes

wanner test spring boot(1.5.20) aop with minimum code

class being aopped,

 @Component
 public class Test {
     public Test() {
         System.out.println("test constr");
     }

     public void print() {
         System.out.println("test print");
     }
 }

aop class

@Aspect
@Component
public class LoggingAspect {
    public LoggingAspect() {
        System.out.println("aspect constr");
    }

    @After("execution(* *.Test.*(..))")
    public void log(JoinPoint joinPoint) {
        System.out.println("aspect print");
    }
}

main class

@SpringBootApplication
@EnableAspectJAutoProxy(proxyTargetClass = true)

public class AopApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(AopApplication.class, args);
    }

    @Autowired
    private Test test;

    @Override
        public void run(String... strings) throws Exception {
        test.print();
    }
}

both Test bean and LoggingAspect bean is created. Test.pring is executed. However, the pointcut log() is never triggered. I searched so and found no answer. I also tried @EnableAspectJAutoProxy with proxyTargetClass = True or False. In my understanding this params force to use cglib for Test class.

please let me know what I missed

1

1 Answers

0
votes

figure out. change from .Test. to com.example.aop.Test.*, then works.