Q:

Валидация параметров метода через аннотации

Хочу реализовать следующий функционал: отмечать аннотацией параметры методов, нужно реализовать обработчик аннотаций таким образом, чтобы при запуске этих методов происходила валидация их параметров. Могу ли я используя аспектно-ориентированное программирование (Spring, aspectJ ...), каким-то образом получать параметры методов в свои советы?

A:

Вы можете получить аргументы метода, используя args.
Например есть интерфейс:
package com.service;

    public interface EmpService {
        void removeEmployee(Integer id);
    }

И аспект для него:
@Aspect
@Component
public class ValidationAspect {

    @Before(value = "execution(* com.service.EmpService.removeEmployee(*)) && args(id)")
    public void validateId(Integer id) {
        Objects.requireNonNull(id, "Id can't be null");
    }
}

