我在Aspect中创建的Log注解在接口(UserService.java)中的方法中不起作用,但在实现类(UserServiceImpl.java)中起作用。有解决办法吗?
Log.java
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
public @interface Log {
}
LoggingAspect.java
@Aspect
@Component
public class LoggingAspect {
@Pointcut("@within(com.example.Log) || @annotation(com.example.Log)")
void isLog() {
}
@Around("isLog()")
public Object aroundExecution(final ProceedingJoinPoint pjp) throws Throwable {
Object response = pjp.proceed();
return response;
}
}
UserService.java
@RequestMapping("user")
public interface UserService {
@DeleteMapping(value = {"/delete"})
@Log
ResponseEntity deleteUser(@RequestParam("id") String id);
}
UserServiceImpl.java
@RestController
public class UserServiceImpl implements UserService {
@Override
public ResponseEntity deleteUser(String id) {
userBusinessService.deleteUser(id);
return new ResponseEntity<>(HttpStatus.OK);
}
}