| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Для чего нужны аннотации |
| Автор: kkin 19.7.2011, 08:16 |
| Добрый день. Хотел узнать что такое аннотации, где именно и как использовать? |
| Автор: danilych 19.7.2011, 08:39 |
| Аннотации призваны упростить программирование, но они обычно обрабатываются не компилятором java, а сторонней программой. Для примера можно привести пример с обработкой транзакций - тут код получается очень тривиальным, т.е. перед выполнением запросов в БД, нужно открыть транзакцию а по окончании ее подтвердить или откатить, эти операции необходимо писать из метода в метод, но в Spring framework есть аннотации для работы с транзакциями и они используются для автогенерации кода (это одно из применений аннотаций). Процесс происходит так - сначала обрабатываются аннотации какой то сторонней программой/компилятором, а затем вступает в дело компилятор java, по крайне мере такое у меня понимание. В hibernate аннотации используются для объявления таблиц БД на основе классов java. В Spring MVC аннотации позволяют указывать методы класса для обработки запросов POST и GET и д.р. В общем, аннотации штука очень полезная и применяется очень широко - своего рода аналог декларативного программирования. |
| Автор: Farmazon 19.7.2011, 08:56 |
| аннотация - это надпись(бляшка) которая навешивается на метод, класс, поле, параметр и проч. Эта информация не обрабатывается компилятором, но служит вспомогательной для работы некоторых библиотек(её ведь можно прочитать с помощью Reflection). |
| Автор: danilych 19.7.2011, 09:16 | ||
а что по поводу аннотации @Overriden ? |
| Автор: kkin 19.7.2011, 09:44 |
| Спасибо danilych, Farmazon, Ситуация начинает проясняться, теперь бы получить примеры из жизни, что бы полностью понимать систему. |
| Автор: Farmazon 19.7.2011, 10:03 | ||
| По идее, Override не является обязательной, введена для удобства. Аннотации не влияют на структуру классов, просто вспомогательные надписи. Но логика некоторых библиотек завязана на эти надписи. Вот определение:
а вот http://javatutor.net/articles/annotations-in-java-primer-1 |
| Автор: danilych 19.7.2011, 10:09 | ||
Лучшим способом будет изучение уже существующих фреймворков - в Spring и Hibernate примеров куча. Могу посоветовать Apress - Spring Recipes. A Problem-Solution Approach 3.0. |
| Автор: kkin 19.7.2011, 10:30 |
| Предоставленная вами информация очень полезна. Сейчас пробую реализовать связь с БД при помощи netBeans и технологии Hibernate |
| Автор: LSD 19.7.2011, 10:43 |
Аннотации бывают http://download.oracle.com/javase/1,5.0/docs/api/java/lang/annotation/RetentionPolicy.html: 1. SOURCE - существуют только во время компиляции и влияют только на компиляцию, в рантайме не доступны. @Override это как раз такая аннотация. К компилятору можно подключить свой процессор аннотаций, например как это сделано в http://code.google.com/p/cofoja/. 2. RUNTIME - добавляются к классу и доступны во время работы приложения, через рефлексию. Примеров использования куча: Spring, Hibernate, JEE 5.0. 3. CLASS - есть в классе, но в рантайме не доступны. Используются достаточно редко, в основном тулами которые постпроцессят классы типа GWT. |
| Автор: AntonSaburov 20.7.2011, 14:01 |
| Можно почитать в статье - http://java-course.ru/articles/articles.php?name=java15 И можно посмотреть реальные примеры использования - http://java-course.ru/students/students.php?name=part18 |
| Автор: kkin 20.7.2011, 14:06 |
| AntonSaburov, благодарю то что необходимо. |