Заблуждение в конце: на ваш вопрос нет единого ответа.
Некоторые аннотации, используемые в исходном коде, такие как в основном , таргетируют время компиляции. Как и инструмент статического анализа, который анализирует поток данных, чтобы сообщить вам, что вы нарушаете «аннотированные» контракты здесь или там.
Но некоторые аннотации также «предназначены» для использования во время выполнения, например используется с «бобами». Такие объекты могут входить в качестве параметра HTTP-запроса, а затем у вас есть какая-либо проверка фреймов, если контент, полученный как JSON, например, действительно действителен, в соответствии с правилами, указанными в аннотациях. См. Этот учебник для некоторых примеров.