9
votes

Java Ee - qui met en œuvre la spécification?

J'ai une certaine expérience dans Core Java et Java EE. J'ai lu les différentes questions sur afin de comprendre ce que Java Ee est exactement? Et quelques réponses à vous sont les suivantes: Qu'est-ce qui-exactement-is-java-ee , < Un href = "https://stackoverflow.com/questions/106820/what-is-java-ee"> what-is-java-ee

J'ai des doutes:

1) Si Java EE est juste une spécification, qui les met en œuvre? Les serveurs d'applications (comme JBoss, Glassfish) implémentent ces spécifications?

2) Si je suis correct, la spécification EJB est implémentée par le conteneur EJB et je crois que le conteneur EJB fait partie du serveur d'applications. Maintenant, lorsque les développeurs écrivons-nous un code EJB, que faisons-nous réellement? Le doute que j'ai est, le conteneur EJB implémente la spécification EJB, de même que nous remplaçons une "partie de spécification" de l'EJB? Comment se fait-il, une partie de l'EJB est mise en œuvre par le conteneur EJB et une chose que les développeurs écrivent? Ou est-ce que une partie de l'EJB doit être fournie par le conteneur EJB et une partie à développer par des développeurs? J'ai des difficultés à désavouer cela.

S'il vous plaît quelqu'un peut-il aider à comprendre cela?


1 commentaires

1) est déjà répondu au duplicata. 2) Nous, les développeurs Java EE, ne sont que des endutilisateurs de l'API Java EE.


5 Réponses :


1
votes

Oui, Conteneur EJB (serveur d'application) Les fournisseurs tels que Redhat Implémentent la spécification J2EE dans leurs produits (comme JBoss).

Ce qu'ils ne font pas, c'est mettre en œuvre une logique commerciale (juste la "plomberie" si vous voulez). C'est là que les développeurs d'applications sont entrés.

Tout comme Apache httpd ou nginx implémente la spécification du protocole HTTP, mais cela ne fait pas un site Web.


0 commentaires

1
votes

Tout le monde peut mettre en œuvre la spécification J2EE, même si je ne vous recommanderais pas d'essayer de le faire vous-même. Vous avez raison, cela est généralement mis en œuvre par des serveurs d'applications afin que vous puissiez exécuter votre application sur un conteneur compatible J2EE. Il existe également des bibliothèques open source, qui, lorsqu'elles sont combinées et ajoutées à Tomcat mettront en œuvre la spécification (voir la Tomée par exemple).

Lorsque vous écrivez votre application, vous utilisez les avantages de l'environnement J2EE qui vous permettra d'écrire des applications complexes et de vous concentrer sur les besoins de vos besoins spécifiques.


0 commentaires

2
votes

Dans les cas de spécifications de Java (Java EE, JSF, autres JSRS), vous avez généralement une implémentation de référence créée lors de la rédaction de la spécification (Glassfish en cas de Java EE), alors vous avez d'autres fournisseurs qui peuvent créer leur propre mise en œuvre de la spécification (revendiquant souvent qu'il est "mieux" d'une manière ou d'une autre).

Vous en tant que développeur, puis écrivez le code qui peut utiliser les installations fournies par la spécification, qui fonctionnerait correctement sur toute implémentation conforme.


0 commentaires

1
votes

1) Les serveurs d'applications implémentent la spécification et tout en libérant leurs serveurs, ils fourniront les détails de leur mise en œuvre. Pour une référence, veuillez regarder sur cette Lien , qui spécifie les différents JSR mis en œuvre par JBoss 7.

2) Lorsque nous utilisons simplement une implémentation fournie par Application Server, l'instance sera extraite à partir de la mise en œuvre fournie par le serveur. Alors que si nous avons annulé une classe, notre classe remplacée sera fournie sur nos opérations.


0 commentaires

11
votes

Quelqu'un peut implémenter la spécification Java EE ( JSR342 ), ou Tout JSR qui en fait partie. Quand ils le font, ils peuvent (après avoir acheté et passer test de compatibilité La suite ) prétend être compatible avec la spécification. Il existe un certain nombre de fournisseurs avec leurs serveurs d'applications qui sont compatible Avec Java Ee , mais aucun fournisseur implique la spécification complète Java EE. Par exemple, Glassfish (la mise en œuvre de référence Java EE) utilise le Red Href="https://jcp.org/en/jsr/detail?id=346" rel="noreferrer"> Mise en œuvre CDI . Parfois, le fournisseur ne met en œuvre aucune partie de la spécification Java EE, ils saisissent des poissons de verre, ajoutent leurs bibliothèques spécifiques au fournisseur et le relâchent sous leur nom. Pour revendiquer la compatibilité, ils doivent toujours passer par le processus de certification et exécuter CTS.

Pour savoir que tous les fournisseurs qui implémentent la spécification ne sont pas si faciles, car ils ne sont pas tous passés par le processus de certification. Par exemple, Apache CXF n'est pas certifié seul, mais il est plutôt certifié dans le cadre de Red Hat's JBoss. P>

Chaque spécification a une API et un PDF écrit, qui définissent tous deux le comportement obligatoire de chaque mise en œuvre. C'est ce que vous utilisez lorsque vous écrivez du code EJB. Par exemple, lorsque vous créez une annotation EJB: P>

import javax.ejb.Singleton;
@Singleton
public class MySingleton{
   ... 
}


1 commentaires

Merci beaucoup pour vos commentaires, a du sens.