AspectJ pointcut dla opisywanych metod PRIVATE

Chcę utworzyć Pointcut dla prywatnych metod opatrzonych adnotacjami. Jednak mój aspekt nie jest wyzwalany, gdy adnotacja jest metodą prywatną, jak poniżej.

@Aspect
public class ServiceValidatorAspect {
    @Pointcut("within(@com.example.ValidatorMethod *)")
    public void methodsAnnotatedWithValidated() {
}

@AfterReturning(
            pointcut = "methodsAnnotatedWithValidated()",
            returning = "result")
    public void throwExceptionIfErrorExists(JoinPoint joinPoint, Object result) {
         ...
}

Interfejs serwisowy

public interface UserService {

    UserDto createUser(UserDto userDto);
}

Wdrożenie usługi

    public class UserServiceImpl implements UserService {

       public UserDto createUser(UserDto userDto) {

             validateUser(userDto);

             userDao.create(userDto);
       }

       @ValidatorMethod
       private validateUser(UserDto userDto) {

            // code here
       }

Jeśli jednak przeniosę adnotację do implementacji metody interfejsu publicznegocreateUser, mój aspekt jest wywołany. Jak mam zdefiniować swój punkt odniesienia lub skonfigurować mój aspekt, aby mój oryginalny przypadek użycia działał?

questionAnswers(2)

yourAnswerToTheQuestion