blob: 4ad75c5d1fdbad142f470dcc16757b91a2190d72 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
-->
<html>
<head>
<title>Поддержка обработчиков аннотаций в IDE NetBeans</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
<meta name="keywords" content="NETBEANS, TUTORIAL, GUIDE, USER, DOCUMENTATION">
<meta name="description" content="A very simple and quick introduction to the NetBeans IDE workflow by walking you through the creation of a
simple Hello World Java console application." >
</head>
<body>
<h1>Поддержка обработчиков аннотаций в IDE NetBeans</h1>
<p><em>Образец предоставлен Джесси Глик (Jesse Glick).</em></p>
<div class="margin-around">
<div class="feedback-box margin-around float-left" style="margin-right:15px">
<p><b>Содержание</b></p>
<ul class="toc">
<li><a href="#intro"><strong>Введение</strong></a></li>
<li><a href="#map"><strong>Сопоставление параметров javac и команд среды IDE </strong></a> </li>
<li><a href="annotations-lombok.html" title="Добавление кода к автоматически созданному исходному файлу">Использование проекта Lombok для пользовательских аннотаций</a></li>
<li><a href="annotations-custom.html">Использование пользовательского обработчика аннотаций в среде IDE</a></li>
<li><a href="annotations-custom.html#seealso" title="Компиляция и выполнение проекта">Дополнительные сведения</a></li>
</ul>
</div>
</div>
<img alt="Содержимое на этой странице применимо к IDE NetBeans 6.9, 7.0 и 7.1" class="stamp" src="../../../images_www/articles/71/netbeans-stamp-71-72-73.png" title="Содержимое этой страницы применимо к IDE NetBeans 6.9, 7.0 и 7.1" width="114" />
<p>В этом учебном курсе из двух частей демонстрируются способы присоединения обработчиков аннотаций к проекту и их использование при работе над кодом в среде IDE. IDE NetBeans включает встроенную поддержку нестандартных обработчиков аннотаций. Теперь можно указать обработчики аннотаций, которые должны выполняться с проектом, и просмотреть результаты обработки аннотаций непосредственно в редакторе Java при помощи автозавершения и перехода. </p>
<p>В <a href="annotations-lombok.html">первой части учебного курса</a> описвается использование обработчика аноотаций от сторонних производителей, <a href="http://projectlombok.org/" target="_blank">проекта Lombok</a> в IDE NetBeans. </p>
<p>Во <a href="annotations-custom.html">второй части учебного курса</a> приводятся способы добавления собственного обработчика аннотаций в проект. Составитель образца кода для этой части учебного курса - Джесси Глик. </p>
<p style="clear:both"><b>Для работы с этим учебным курсом требуются программное обеспечение и ресурсы, перечисленные ниже.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Программное обеспечение или материал</th>
<th class="tblheader" scope="col">Требуемая версия</th>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html" target="_blank">IDE NetBeans</a></td>
<td class="tbltd1">7.1, 7.2, 7.3 </td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Комплект для разработчика на языке Java (JDK)</a></td>
<td class="tbltd1">версия 6</td>
</tr>
</tbody>
</table>
<p><strong class="notes">Примечания:</strong></p>
<ul>
<li>В IDE NetBeans выпуске 6.9 была добавлена поддержка нестандартных обработчиков аннотаций. Этот учебный курс не подходит для использования с предыдущими версиями среды IDE. </li>
</ul>
<h2><a name="intro"></a>Введение</h2>
<p><em>Аннотации</em> - это механизм языка программирования Java, используемый для указания метаданных об элементах приложения. Аннотации содержат метаинформацию о способах обработки аннотированных элементов компилятором во время развертывания или выполнения. Иными словами, аннотации &ndash; это комментарии к коду, которые могут обрабатываться другими программами и средствами.</p>
<p>Пользовательские аннотации можно использовать для выполнения различных задач: добавления пометок к частям приложения (напр., сведениям об авторских правах, методам тестирования и т. п.), автоматического создания кода, анализа параметров командной строки, разработки веб-служб и т. п. Информация о методах обработки пользовательских аннотаций передается компилятору Java при помощи пользовательских обработчиков аннотаций. <a href="http://www.jcp.org/en/jsr/detail?id=269" target="_blank">JSR 269</a>, реализованный в пакете JDK 6, содержит официальный интерфейс API для создания обработчиков аннотаций. Разработчик может создать собственные пользовательские обработчики аннотаций или использовать внешние решения.</p>
<p>Начальная информация об аннотациях в пакете JDK 6 приведена в следующих ресурсах:</p>
<ul>
<li>Документация Java SE - <a href="http://download.oracle.com/javase/6/docs/technotes/guides/language/annotations.html" target="_blank">Аннотации</a></li>
<li>Учебный курс Java SE - <a href="http://download.oracle.com/javase/tutorial/java/javaOO/annotations.html" target="_blank">Аннотации</a> </li>
</ul>
<p>На практике аннотации наиболее широко используются в сочетании с интерфейсом API сохранения состояния Java (JPA), частью спецификации Java EE и другими технологиями, например JAXB (архитектура Java для XML Binding). При помощи JPA можно аннотировать классы Java как сущности, которые впоследствии сохраняются в памяти. Для разработки приложений на основе JPA целесообразно использовать платформы, например, платформу EclipseLink, входящую в состав среды IDE. В качестве начальной точки для получения дополнительных сведений о записи приложений на основе JPA в IDE NetBeans см. в разделе <a href="../../docs/javaee/javaee-gettingstarted_ru.html">Начало работы с приложениями Java EE 6</a>.</p>
<h2><a id="map" name="map"></a>Сопоставление параметров javac и команд среды IDE для обработки аннотации</h2>
<p>Как уже упоминалось выше, обработка аннотации входит в программу javac из Java SE 6 в качестве неотъемлемой функции компилятора Java. При помощи компилятора по умолчанию выполняется автоматический поиск обработчиков аннотаций по пользовательскому пути поиска классов (если обработка аннотаций не отключена явным образом). Кроме того, можно указать путь поиска или путь к определенным обработчикам аннотаций при помощи параметров Javac. В приведенной ниже таблице приведено сопоставление параметров Javac, связанных с обработкой аннотации, и соответствующих команд в среде IDE. Дополнительные сведения о параметрах Javac в пакете JDK 6 можно найти на странице <a href="http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html" target="_blank">Javac - компилятор языка программирования Java</a>.</p>
<p class="notes"><strong>Примечание.</strong> В IDE параметры обработки аннотаций для всех приложений Java за исключением приложений платформы NetBeans указаны в окне 'Свойства проекта'. Чтобы открыть &quot;Свойства проекта&quot;, щелкните проект правой кнопкой мыши и выберите &quot;Свойства&quot;.</p>
<table>
<tbody>
<tr>
<td class="tblheader">Параметры Javac Java 6 </td>
<td class="tblheader">Команда среды IDE </td>
<td class="tblheader">Описание</td>
</tr>
<tr>
<td class="tbltd0"><tt>-processor</tt></td>
<td class="tbltd0"><p>&quot;Свойства проекта&quot; &gt; &quot;Построение&quot; &gt; &quot;Компиляция&quot; &gt; поле &quot;Обработчики аннотаций&quot;. </p>
<p>Укажите полностью определенное имя процессора аннотаций в поле &quot;Обработчики аннотаций&quot;. </p></td>
<td class="tbltd0">Явным образом указывает обработчик аннотаций, который необходимо выполнить. Благодаря этому параметру создание файлов настройки поставщика службы не требуется (META-INF/services/javax.annotation.processing.Processor) </td>
</tr>
<tr>
<td class="tbltd1"><tt>-proc:none</tt></td>
<td class="tbltd1"><p>&quot;Свойства проекта&quot; &gt; &quot;Сборка&quot; &gt; &quot;Компиляция&quot; &gt; флажок &quot;Включить обработку аннотаций&quot; </p>
<p>Если флажок не установлен, проект компилируется без обработки аннотации. </p></td>
<td class="tbltd1">Компиляция выполняется без обработки аннотации. Механизм обнаружения обработчика аннотаций во время компиляции не используется. </td>
</tr>
<tr>
<td class="tbltd0"><tt>-processorpath</tt></td>
<td class="tbltd0"><p>&quot;Свойства проекта&quot; &gt; &quot;Библиотеки&quot; &gt; вкладка &quot;Обработчик&quot; </p>
<p>Следует указать путь к проекту·среды IDE, библиотеке или файлу JAR, который содержит обработчик аннотаций. Рекомендуется использовать этот параметр, если обработчик аннотаций и аннотации упакованы в различные файлы JAR.</p></td>
<td class="tbltd0">Указывает расположение обработчиков аннотаций. Если данный параметр отсутствует, поиск обработчиков выполняется по пути для поиска классов (см. ниже). </td>
</tr>
<tr>
<td class="tbltd1"><tt>-classpath</tt></td>
<td class="tbltd1"><p>&quot;Свойства проекта&quot; &gt; &quot;Библиотеки&quot; &gt; вкладка &quot;Компиляция&quot; </p>
<p>Следует указать путь к проекту среды IDE, библиотеке или файлу JAR, который содержит процессор аннотаций и объявления аннотаций. Этот параметр рекомендуется использовать, если процессор аннотаций и аннотации упакованы в один файл JAR. </p></td>
<td class="tbltd1">Указывает расположение пользовательских файлов классов, обработчиков аннотаций и исходных файлов (при необходимости). Поиск обработчиков аннотаций выполняется по этому пути, если не указан параметр &quot;-processorpath&quot;. </td>
</tr>
<tr>
<td class="tbltd0"><tt>-A<em>key[=value]</em></tt></td>
<td class="tbltd0"><p>&quot;Свойства проекта&quot; &gt; &quot;Построить&quot; &gt; &quot;Компиляция&quot; &gt; поле &quot;Параметры обработчика&quot; </p>
<p>Добавьте параметры, которые требуется передать в обработчик аннотаций, связанный с проектом. Данное значение не является обязательным. </p></td>
<td class="tbltd0">Параметры, которые необходимо передать в обработчики аннотаций (необязательно). </td>
</tr>
</tbody>
</table>
<p>&nbsp; </p>
<h2><a id="nextsteps" name="nextsteps"></a>Что дальше?</h2>
<p>Сведения об использовании аннотаций в среде IDE содержатся в следующих разделах учебного курса: </p>
<ul>
<li><a href="annotations-lombok.html">Часть I. Использование проекта Lombok для пользовательских аннотаций</a> </li>
<li><a href="annotations-custom.html">Часть II: работа с собственными обработчиками пользовательских аннотаций в среде IDE</a> </li>
</ul>
<p> </p>
<div class="feedback-box"><a href="/about/contact_form.html?to=3&subject=Feedback:%20Using%20the%20Annotation%20Processors%20Support%20in%20the%20NetBeans%20IDE">Мы ждем ваших отзывов</a><br style="clear:both;" />
</div>
</body>
</html>