Подтвердить что ты не робот

Что такое "Facet" в JavaEE?

Интересно не только то, что такое Facet, но и что такое Facet 'на физическом уровне' (поскольку я понимаю это не отдельная банка, а что?)?

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

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

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

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

4b9b3361

Ответ 1

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

От http://www.thefreedictionary.com/facet

fac · et (fst) n.

  • Одна из плоских полированных поверхностей, нарезанных драгоценным камнем или встречающихся естественно, на кристалле.
  • Анатомия Маленькая гладкая плоская поверхность, как на кости или зубе.
  • Биология. Одна из линзовидных визуальных единиц сложного глаза, как насекомое.
  • Один из многочисленных аспектов, как предмета. См. Синонимы в phase.

Это 4.

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

Ответ 2

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

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

Q: Границы - для чего они предназначены?

A: Чтобы оптимизировать конфигурацию проекта.

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

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

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

alt text

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

Ответ 3

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

Ответ 4

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

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

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

Чтобы подробно описать его, я подробно изложу подробные сведения из Eclipse Documentations. Это Спецификация Eclipse.

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

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

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

Примечание. Отображаются только грани, которые действительны для проекта.

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

  • Выберите номер версии для фасета, щелкнув текущий номер версии и выбрав нужный номер версии из раскрывающегося списка.
  • Необязательно: Чтобы удалить грань, снимите флажок. Не все грани могут быть удалены.
  • Необязательно: если вы хотите ограничить проект, чтобы он был совместим с одним или несколькими режимами времени выполнения, щелкните вкладку Runtimes и выберите время выполнения, с которым вы хотите, чтобы проект был совместим. Дополнительные сведения о времени выполнения см. В разделе Определение целевых серверов для проектов J2EE.
  • Нажмите "Готово", чтобы выйти из диалогового окна "Изменить грань проекта" и нажмите "ОК".

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

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

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