Что такое «Facet» в JavaEE? - PullRequest
       30

Что такое «Facet» в JavaEE?

50 голосов
/ 27 ноября 2009

Мне интересно не только, что такое Facet, но и что такое Facet «на физическом уровне» (насколько я понимаю, это не отдельный сосуд, но что?)

Мне также интересно, как это может повлиять на мое приложение после развертывания. Я объясню на реальном примере:

У меня было 2 аспекта (которые были созданы IDE): Spring Facet и Web Facet (для jsf). Я развернул его в Tomcat, и мое приложение работало нормально.

Затем я добавил (с помощью IDE) еще один аспект - JPA Facet. Я повторно развернул приложение и .. оно все еще работало нормально :)

Итак, мне просто интересно, что это и зачем нам это нужно?

Ответы [ 4 ]

53 голосов
/ 27 ноября 2009

Это не связано с Java EE. Это связано с IDE. Термин сам по себе не связан с программированием.

С http://www.thefreedictionary.com/facet

fac · et (fst) n .

  1. Одна из плоских полированных поверхностей, вырезанная на драгоценном камне или встречающаяся естественно на кристалле.
  2. Анатомия Небольшая, гладкая, плоская поверхность, как на кости или зубе.
  3. Биология Одна из линзоподобных визуальных единиц сложного глаза, по состоянию на насекомое.
  4. Один из многочисленных аспектов предмета. См Синонимы на фаза .

Это 4.

В данном конкретном случае это просто аспект, который должен использоваться в проекте, чтобы среда IDE могла перехватывать его в отношении генераторов, мастеров, библиотек автоматического включения и т. Если вы добавите, например, фасет JPA , вы получите больше возможностей для создания IDE-магии с JPA.

40 голосов
/ 27 ноября 2009

Как сказал BalusC, это связано не с Java EE, а с IDE. Это позволяет гибко добавлять «характеристики» в проект.

Из вопросов и ответов IntelliJ IDEA для пользователей Eclipse (поскольку вы упомянули IDEA):

Q: Грани - для чего они нужны?

A: Для оптимизации конфигурации проекта.

Аспекты инкапсулируют поддержку для Разнообразие рамок, технологий и языки. Например, чтобы включить Весна в вашем проекте, у вас есть только добавить соответствующий фасет. Все библиотеки загружаются и настроив, вы получите полный спектр помощь в кодировании, рефакторинг и т. д. Кроме того, модель кода также признан, так что вы совершенно свободны от беспокойства о любой конфигурации вопросы.

В большинстве случаев вы можете добавить более один аспект того же типа к вашему проект. Например, вы можете иметь несколько веб-аспектов для развертывания приложение на разных серверах, или несколько аспектов EJB, каждый для своего EJB версия. (См. Также проект Конфигурация.)

И да, Eclipse также использует "Facets":

alt text

AFAIK, NetBeans нет (см. Q: Как настроить веб-инфраструктуру для моего проекта? ).

2 голосов
/ 17 сентября 2016

Как объясняется в документации Eclipse & Intellij , Фасеты определяют характеристики и требования (определенная конфигурация, специфичная для конкретной среды / технологии).

Когда вы добавляете фасет в проект, этот проект настраивается для выполнения определенной задачи, выполнения определенных требований или имеет определенные характеристики.

Короче говоря, вы должны следовать некоторой структуре для реализации некоторой структуры / технологии. В IDE есть варианты, позволяющие упростить вам жизнь.

Для более детальной проработки я приведу некоторые подробности непосредственно из документации Eclipse. Это Eclipse-специфичный .

При создании проекта вы получите возможность реализовать фасет для своего проекта. Например, фасет EAR настраивает проект для функционирования в качестве приложения предприятия, добавляя дескриптор развертывания и устанавливая путь к классам проекта.

Чтобы добавить еще один фасет к проекту , который уже существует, выполните следующие шаги:

  1. В представлении Project Explorer перспективы Java ™ EE щелкните проект правой кнопкой мыши и выберите «Свойства».
  2. Выберите страницу «Фасеты проекта» в окне «Свойства». На этой странице перечислены аспекты проекта и их версии.
  3. Нажмите «Изменить проект» и установите флажки рядом с фасетами, которые должен иметь проект.

Примечание: в списке указаны только те аспекты, которые действительны для проекта

Некоторые грани могут не работать вместе. Таким образом, вы также можете выбрать предустановленную комбинацию фасетов из списка предустановок .

  1. Выберите номер версии для фасета, щелкнув номер текущей версии и выбрав нужный номер версии в раскрывающемся списке.
  2. Необязательно: Чтобы удалить фасет, снимите его флажок. Не все грани могут быть удалены.
  3. Необязательно: Если вы хотите ограничить проект, чтобы он был совместим с одной или несколькими средами выполнения, щелкните вкладку «Среда выполнения» и выберите среды выполнения, с которыми вы хотите совместить проект. Для получения дополнительной информации о времени выполнения см. Указание целевых серверов для проектов J2EE.
  4. Нажмите кнопку «Готово», чтобы закрыть диалоговое окно «Изменить граненый проект», а затем нажмите кнопку «ОК».

Фасеты также имеют номера версий в Eclipse. Вы можете изменить номера версий фасетов , если вы соблюдаете требования к фасетам. Чтобы изменить версию фасета в вашем проекте, выполните следующие действия:

  1. В представлении Project Explorer перспективы Java EE щелкните проект правой кнопкой мыши и выберите «Свойства».
  2. Выберите страницу «Фасеты проекта» в окне «Свойства». На этой странице перечислены аспекты проекта и их версии.
  3. Нажмите Изменить проект и выберите фасет, который вы хотите изменить.
  4. Выберите версию фасета из раскрывающегося списка рядом с именем фасета.
  5. Нажмите кнопку Готово, чтобы закрыть окно Изменить граненый проект, а затем нажмите кнопку ОК.

Вы можете делать больше вещей с гранями. Я привел примеры для вашего лучшего понимания. Для получения подробной информации, пожалуйста, просмотрите документацию вашей любимой IDE.

2 голосов
/ 05 июля 2013

Facets - это инфраструктура веб-приложений, которая использует простую архитектуру MVC для серверной части и многофункциональную модель компонентов Javascript для клиента. Эти две части предназначены для безупречной интеграции в очень динамичные приложения в стиле AJAX

...