Вопрос проверяет опыт работы с метаданными Java и понимание, как аннотации используются фреймворками.
Да, собственные аннотации пишут для добавления метаданных к коду. Они сами по себе ничего не делают, а используются через reflection или фреймворки. Часто аннотации применяются вместе с AOP или обработчиками. Это удобный способ вынести конфигурацию и правила из кода. В Spring такие аннотации используются очень активно.
Собственные аннотации — это способ описать дополнительный смысл кода без изменения логики.
Пользовательская аннотация — это аннотация, объявленная разработчиком для хранения метаданных и последующей обработки.
Аннотация объявляется как специальный интерфейс.
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Auditable {
String value();
}
Важно понимать, что аннотация:
не содержит логики
не исполняется сама по себе
Логика появляется, когда:
Код читает аннотацию через reflection
Spring использует её в AOP
Аннотация участвует в конфигурации
AOP
логирование
аудит
метрики
Валидация
собственные правила
бизнес-ограничения
Маркировка
feature flags
роли
типы обработки
@Auditable("payment")
public void processPayment() {
// бизнес-логика
}
Дальше:
аспект перехватывает метод
читает аннотацию
выполняет дополнительное поведение
Аннотации — это декларативный способ расширять поведение системы. Они особенно полезны в сочетании с AOP и фреймворками.