Не работает Aspect при аннотации EnableAspectJAutoProxy spring boot

Мне нужно реализовать функционал, который проверяет подписку (есть ли она у пользователя), и я решил сделать через аннотацию и AOP. Вот код моей аннотации:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresSubscription {
    String value();
}

код аспекта:

@Aspect
@Component
@FieldDefaults(level = AccessLevel.PRIVATE, makeFinal = true)
@Order(1)
@Log4j2
@RequiredArgsConstructor
public class SubscriptionAspect {
    @Before("@annotation(requiresSubscription)")
    public void checkSubscription(RequiresSubscription requiresSubscription) {
        log.info("Check... %s".formatted(requiresSubscription.value()));
    }
}

и код контроллера, где я использую аннотацию.

@RequiresSubscription("GOLD")
@GetMapping("graph")
private List<LogGraphDto> logsGraph(
        @AuthenticationPrincipal UserEntity user
) {
    ...
}

но не работает, как я выяснил, метод аспекта checkSubscription вообще не вызывается. как это исправить? (аннотация EnableAspectJAutoProxy есть в конфиге)


Ответы (1 шт):

Автор решения: One qxz

гениальность на спринге.. надо было модификатор доступа у метода эндпоинта поставить с private на public

→ Ссылка