切入点在界面上不起作用

问题描述 投票:0回答:0

我在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);
    }
}
spring-boot spring-rest spring-aspects
© www.soinside.com 2019 - 2024. All rights reserved.