不被调用之前的外观

时间:2018-10-23 14:16:38

标签: java spring-boot aop aspectj

我已经浏览了教程并在此处回答。 log方法下的消息不会打印。

当在log方法上使用时,IDE标识包装器注释的路径正确。但是它表明我的日志方法从未使用过。

(使用Intellij Ultimate,假设如果Aspect配置正确,它将识别出使用log方法)。如果需要,添加了我的文件结构的屏幕截图。

目前,它仅打印常规方法中的消息。 是我的配置吗?请指教。谢谢。

//main class
@SpringBootApplication
public class AspecttestApplication {

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

        SomeClass someClass = new SomeClass();
        someClass.general();
    }
}

//class to implement aspect
public class SomeClass {

    @Wrapper(name = "GENERAL")
    void general(){
        System.out.println("general start ..");
        System.out.println("general end ..");
    }

}

//Aspect
@Aspect
@Component
public class MainHelper {

    @Before("@annotation(Wrapper)")
    void log(JoinPoint joinPoint){
        System.out.println("log called from aspect");
    }
}

//Config
@Configuration
@EnableAspectJAutoProxy
public class LogConfig {
    //i don't have anything to config
    //solely using this to EnableAspectJAutoProxy
}

//Annotation
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Wrapper {
    String name() default "DEFAULT";
}

Screenshot for file format under ide

0 个答案:

没有答案