У меня есть сценарий, в котором мне нужно генерировать исключение, когда метод возвращает нулевой объект, а также настраивать ответ на основе параметров, отправленных в метод.
У меня есть интерфейс, который имеет некоторые методы, теперь я хочу убедиться, что тот, кто реализует этот метод, выполняет базовую c проверку (определенную аннотацией или что-то в этом роде), например, нулевую проверку. Таким образом, после переопределенного метода вызывается проверка
Например:
@NotNull
User getUser(Integer id)
if response is Null then
"User not available for id:" + id
Я пробовал использовать проверку javax @NotNull, но он не предоставляет параметры, отправленные методу , есть ли способ добиться этого с помощью проверки javax.
Еще одна вещь, которую я пробовал, - это использование аннотации управления AOP @Around, и мне удалось получить ответ и параметры, которые хотели убедиться, есть ли другой способ достичь этого, как указано, аннотация на интерфейсе невозможна на AOP LINK .
Другой вариант - использовать шаблон декоратора, но включает в себя много кодирования на пластине
@InterceptorBinding
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface MethodInterceptorBinding { }
@Interceptor
@MethodInterceptorBinding
public class MethodInterceptor {
@AroundInvoke
public Object validateMethodInvocation(InvocationContext ctx)
throws Exception {
}
}
Пробовал CDI, но MethodInterceptor не вызывается в приложении весенней загрузки, нужно ли мне регистрировать эти перехватчики, если да, то как?