我已经浏览了教程并在此处回答。 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";
}