web-dev-qa-db-fra.com

Qu'est-ce que «Facet» dans JavaEE?

Je me demande non seulement ce qu'est Facet mais aussi ce qu'est Facet "au niveau physique" (si je comprends bien, ce n'est pas un pot séparé, mais quoi?)?

Je me demande également comment cela peut affecter mon application après le déploiement. Je vais vous expliquer sur un exemple réel:

J'avais 2 facettes (qui ont été créées par IDE): Spring Facet et Web Facet (pour jsf). Je l'ai déployé sur Tomcat et mon application a bien fonctionné.

Ensuite, j'ai ajouté (au moyen de l'IDE) une autre facette - JPA Facet. J'ai redéployé l'application et .. cela a toujours bien fonctionné :)

Alors, je suis juste curieux de savoir ce que c'est et pourquoi en avons-nous besoin?

52
Roman

Ce n'est pas Java EE lié. Ceci est IDE lié. Le terme n'est en soi pas lié à la programmation).

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

fac · et (fst) n.

  1. L'une des surfaces planes polies taillées sur une pierre précieuse ou se produisant naturellement sur un cristal.
  2. Anatomie Une petite surface lisse et plate, comme sur un os ou une dent.
  3. Biologie L'une des unités visuelles en forme de lentille d'un œil composé, comme celle d'un insecte.
  4. L'un des nombreux aspects, comme d'un sujet. Voir Synonymes à phase .

C'est 4.

Dans ce cas spécifique, c'est juste un aspect qui doit être utilisé dans le projet, afin que le IDE puisse l'intercepter en ce qui concerne les générateurs, les assistants, les bibliothèques d'inclusion automatique, etc.). vous ajoutez par exemple la facette JPA , puis vous aurez plus d'options pour faire la magie IDE avec JPA.

54
BalusC

Comme l'a dit BalusC, ce n'est pas Java lié à EE mais IDE lié. Cela permet d'ajouter des "caractéristiques" à un projet de manière flexible).

De la IntelliJ IDEA Q&A pour les utilisateurs Eclipse (parce que vous avez mentionné IDEA):

Q: Facettes - à quoi servent-elles?

A: Pour rationaliser la configuration du projet.

Les facettes encapsulent la prise en charge de divers cadres, technologies et langages. Par exemple, pour activer Spring dans votre projet, il vous suffit d'ajouter la facette correspondante. Toutes les bibliothèques sont téléchargées et configurées, vous bénéficiez de toute la gamme de l'aide au codage, des refactorings, etc.

Dans la plupart des cas, vous pouvez ajouter plusieurs facettes du même type à votre projet. Par exemple, vous pouvez avoir plusieurs facettes Web pour déployer l'application sur différents serveurs, ou plusieurs facettes EJB, chacune pour sa propre version d'EJB. (Voir aussi Configuration du projet.)

Et oui, Eclipse utilise aussi des "Facettes":

alt text

AFAIK, NetBeans ne le fait pas (voir Q: Comment configurer un framework web pour mon projet? ).

41
Pascal Thivent

Comme expliqué dans la documentation Eclipse & Intellij , les facettes définissent les caractéristiques et les exigences (certaines configurations, spécifiques à un framework/technologie particulier).

Lorsque vous ajoutez une facette à un projet, ce projet est configuré pour effectuer une certaine tâche, remplir certaines exigences ou avoir certaines caractéristiques.

En bref, vous devez suivre une structure pour mettre en œuvre un cadre/une technologie. Les IDE ont des options pour le mettre en œuvre pour vous faciliter la vie.

Pour le développer en détail, je donne quelques détails approfondis directement à partir d'Eclipse Documentations. C'est spécifique à Eclipse .

Pendant la création d'un projet vous aurez la possibilité d'implémenter la facette de votre projet. Par exemple, la facette EAR configure un projet pour qu'il fonctionne comme une application d'entreprise en ajoutant un descripteur de déploiement et en configurant le chemin d'accès aux classes du projet.

Pour ajouter une autre facette à un projet qui existe déjà, procédez comme suit:

  1. Dans la vue Explorateur de projets de la perspective Java ™ EE, cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés.
  2. Sélectionnez la page Facettes du projet dans la fenêtre Propriétés. Cette page répertorie les facettes du projet et leurs versions.
  3. Cliquez sur Modifier le projet et cochez les cases en regard des facettes que vous souhaitez que le projet ait.

Remarque: seules les facettes valides pour le projet sont répertoriées

Certaines facettes peuvent ne pas fonctionner ensemble. Ainsi, vous pouvez également choisir une combinaison prédéfinie de facettes dans la liste des préréglages .

  1. Choisissez un numéro de version pour la facette en cliquant sur le numéro de version actuel et en sélectionnant le numéro de version souhaité dans la liste déroulante.
  2. Facultatif: pour supprimer une facette, décochez sa case. Toutes les facettes ne peuvent pas être supprimées.
  3. Facultatif: si vous souhaitez limiter le projet afin qu'il soit compatible avec un ou plusieurs runtimes, cliquez sur l'onglet Runtimes et sélectionnez les runtimes avec lesquels vous souhaitez que le projet soit compatible. Pour plus d'informations sur les temps d'exécution, voir Spécification de serveurs cibles pour les projets J2EE.
  4. Cliquez sur Terminer pour quitter la boîte de dialogue Modifier le projet à facettes, puis cliquez sur OK.

Les facettes ont également des numéros de version dans Eclipse. Vous pouvez modifier les numéros de version des facettes tant que vous respectez les exigences pour les facettes. Pour modifier la version d'une facette de votre projet, procédez comme suit:

  1. Dans la vue Explorateur de projets de la perspective Java EE, cliquez avec le bouton droit sur le projet, puis sélectionnez Propriétés.
  2. Sélectionnez la page Facettes du projet dans la fenêtre Propriétés. Cette page répertorie les facettes du projet et leurs versions.
  3. Cliquez sur Modifier le projet et cliquez sur la facette que vous souhaitez modifier.
  4. Sélectionnez la version de la facette dans la liste déroulante à côté du nom de la facette.
  5. Cliquez sur Terminer pour fermer la fenêtre Modifier le projet à facettes, puis cliquez sur OK.

Vous pouvez faire plus de choses avec les facettes. J'ai donné des exemples pour votre meilleure compréhension. Pour plus de détails, veuillez consulter la documentation de votre IDE préféré.

2
blueray

Facets est un cadre d'application Web qui exploite une architecture MVC simple pour le côté serveur et un modèle de composant Javascript riche en fonctionnalités pour le client. Les deux pièces sont conçues pour être parfaitement intégrées pour des applications très dynamiques de style AJAX

1
armin