Java
Для чего в Java нужна аннотация своими словами?
это костыль для компилятора
т. е. даже прочитав в документации о том что делают аннотации вы так и не поняли для чего они нужны?
Ну аннотация она не обязательно должно что-то компилятору говорить. Она может и в рантайме существовать.
По сути, это некоторая метка специальная, которая очень полезна при использовании разных фреймворков. Банальный пример - в спринге есть аннотация @Transactional. Помечаешь ей метод и он у тебя выполняется под транзакцией.
Ты можешь свою аннотацию написать. А дальше юзать ее, на что хватит фантазии. Например, при создании объекта какого-то, можешь создавать для него прокси объект, который будет перехватывать вызовы всех методов данного объекта и проверять, есть ли над каким-то методом твоя аннотация. Если есть, то делаешь что угодно перед вызовом этого метода, потом делаешь что угодно после вызова этого метода.
Или еще, например, можешь через спринговые аспекты перехватывать методы своих сервисов, которые будут помечены какой-нибудь аннотацией и анализировать их, как тебе нужно.
Это не сложно на самом деле и достаточно интересно, но на начальном этапе об этом можно особо не думать) Данную тему можно изучать потом. Она становится интересной, когда уже немного знаешь из java reflection, что позволяет анализировать класс. А также когда уже знаком с аспектами (AOP) не обязательно спринговыми конечно. Ну и когда знаешь, что такое прокси и как это работает.
По сути, это некоторая метка специальная, которая очень полезна при использовании разных фреймворков. Банальный пример - в спринге есть аннотация @Transactional. Помечаешь ей метод и он у тебя выполняется под транзакцией.
Ты можешь свою аннотацию написать. А дальше юзать ее, на что хватит фантазии. Например, при создании объекта какого-то, можешь создавать для него прокси объект, который будет перехватывать вызовы всех методов данного объекта и проверять, есть ли над каким-то методом твоя аннотация. Если есть, то делаешь что угодно перед вызовом этого метода, потом делаешь что угодно после вызова этого метода.
Или еще, например, можешь через спринговые аспекты перехватывать методы своих сервисов, которые будут помечены какой-нибудь аннотацией и анализировать их, как тебе нужно.
Это не сложно на самом деле и достаточно интересно, но на начальном этапе об этом можно особо не думать) Данную тему можно изучать потом. Она становится интересной, когда уже немного знаешь из java reflection, что позволяет анализировать класс. А также когда уже знаком с аспектами (AOP) не обязательно спринговыми конечно. Ну и когда знаешь, что такое прокси и как это работает.
Говоришь компилятору на что обратить внимание и по каким правилам
Похожие вопросы
- JAVA, объясните, пожалуйста, простыми словами
- Всем привет. Помогите плз. Мне нужна помощь тех кто действительно хорошо знает Java т. к мне нужно выбрать один из курсов
- Работа со строками Java Разработать программу, которая вводит строку и находит все слова указанной длины n (n вводится).
- Что такое полиморфизм и для чего он нужен? Java
- Помогите доделать код на java. В форму пользователь вводит символ, который нужно заменить на #.
- Не выводит изображение в JAVA
- Java проблема с рефлексией.
- Подскажите, пожалуйста, нужен ли вообще диплом о высшем образовании программисту на JAVA?
- Java Developer vs Android Developer. Куда дальше?
- Перечислите основные аннотации Spring