Как создать пользовательскую аннотацию java для параметров метода журнала
Я пишу приложение JavaEE, и я хотел бы использовать и создавать пользовательские аннотации, которые будут регистрировать данные, когда будет вызван аннотированный метод. Все, что я хотел бы сделать, это то, что при вызове аннотированного метода код перебирает все переданные параметры метода и записывает стандартные ключи и значения выходных параметров.
пример:
public class Test {
    @LogMethodData
    public int sum(int first, int second) {
        return first + second;
    }
}
Я хотел бы добиться того, что когда пользовательский метод будет аннотирован @LogMethodData, этот код будет позаботьтесь и запишите параметры метода в стандартный вывод (что - то вроде "данные метода: первый - 4, второй-5", если параметр первый содержит значение 4, а параметр второй содержит значение 5), независимо от количества переданных параметров методам.
С уважением, Dahakka
1 ответов
нет необходимости определять собственную аннотацию, вы можете использовать @Interceptors Аннотация В контейнере EE как пояснил здесь.
@Interceptors(LoggingInterceptor.class)
в перехватчике вы получите контекст, содержащий ваши параметры
public class LoggingInterceptor {
    ...
    @AroundInvoke
    public Object modifyGreeting(InvocationContext ctx) throws Exception {
        ....
        Object[] parameters = ctx.getParameters();
        try {
            return ctx.proceed();
        } catch (Exception e) {
            logger.warning("Error calling ctx.proceed in modifyGreeting()");
            return null;
        }
    }
}
еще пример : здесь
