我有一个我想记录的方法。
@ApiLogBefore
public ResponseEntity save(@RequestParam("transactionId") String transactionId) throws JsonProcessingException {
...
}
有一个注释,我想通过它执行方面:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface ApiLogBefore {
}
只要是空的。有一个方面:
@Aspect
@Component
@Slf4j
public class ApiLogAspectProcessor {
@Pointcut("@annotation(ApiLogBefore)")
public void logProcessor() {
}
@Before(value = "logProcessor()")
public void before() {
System.out.println(">>>>>>>>>>>>>>>>>>>>>>");
log.debug(">>>>>>>>>>>>>>>>>>>>");
}
}
据我了解,当您在控制台中对 save 方法运行测试时,应该会显示输出。但是它甚至没有进入方法,断点也没有捕获任何东西。
依赖项:
compile group: 'org.springframework', name: 'spring-aop', version: '5.1.0.RELEASE'
compile group: 'org.aspectj', name: 'aspectjrt', version: '1.9.2'
compile group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.2'
告诉我,问题可能出在哪里?
事实证明,为了让一切正常工作,有必要用注释标记配置
@EnableAspectJAutoProxy