为什么未启动Spring Boot AOP切入点

时间:2019-04-26 04:44:55

标签: spring-boot spring-aop

用最少的代码进行万纳测试弹簧靴(1.5.20)aop

正在上课,

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

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

aop类

@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");
    }
}

主班

@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();
    }
}

同时创建了Test bean和LoggingAspect bean。执行test.pring。但是,切入点log()永远不会触发。我这样搜索,没有找到答案。我还尝试了@EnableAspectJAutoProxy与proxyTargetClass = True或False。以我的理解,这些参数迫使将cglib用于Test类。

请让我知道我错过了什么

1 个答案:

答案 0 :(得分:0)

弄清楚。从 .Test。更改为com.example.aop.Test。*,然后可以使用。