web-dev-qa-db-fra.com

Différence entre Java Bean et Enterprise Java Beans?

Sont-ils différents ou sont-ils interchangeables? S'ils sont différents, qu'est-ce qui les a rendus différents les uns des autres?

41
GuruKulki

Un JavaBean est juste un vieil objet Java conforme à certaines conventions, y compris l'utilisation des fonctions d'accesseur (getFoo/setFoo) pour l'accès des membres, la fourniture d'un constructeur par défaut et quelques autres choses comme ça .

Un Enterprise JavaBean est un composant d'un serveur d'applications Java EE qui se décline en plusieurs versions, dont les détails varient selon la version de Java EE que vous utilisez). parler (ou, plus précisément, de quel ensemble spécifique de spécifications d'EJB sont impliquées).

Les JavaBeans étaient à l'origine principalement destinés à être utilisés dans les outils de génération en fournissant une interface connue qui pouvait être recherchée par introspection dans les outils. Cependant, ils se sont rapidement transformés en ce qui équivaut à une religion.

Les JavaBeans d'entreprise sont destinés à fournir une logique métier encapsulée pour les applications d'entreprise dans un conteneur général qui fournit des éléments tels que la gestion de session, la sécurité, la mise en commun des ressources, etc. en tant que services permettant ainsi à la logique métier d'être (relativement) vierge de ces préoccupations transversales. (Qu'ils aient accompli cela ou non, c'est une question qui fait débat, étant donné la difficulté à utiliser au début. Les versions plus récentes de la spécification ont cependant rendu cela plus facile. Les applications héritées, cependant, sont toujours une douleur et malheureusement probablement la majorité des EJB que vous rencontrerez probablement.)


Modifié pour ajouter:

45

A Java Bean est défini comme une instance d'une classe qui contient des attributs privés (données) et des méthodes getter et setter.

Si tu as:

chaîne privée myString; dans votre classe, vous devriez avoir les méthodes public String getMyString (); et public void setMyString (String settingString); défini dans votre code. Bien que, j'ai constaté qu'il n'est pas absolument nécessaire d'avoir tout défini; ne soyez pas surpris si quelque chose se casse!

Un EJB (Enterprise Java Bean) est beaucoup plus complexe. Il réside uniquement dans les serveurs d'applications qui gèrent les EJB (Tomcat ne contient pas d'EJB). Il existe 3 types d'EJB:

  1. Session: contient généralement une logique métier.
  2. Entité: généralement interface avec un magasin de données (comme une base de données).
  3. Piloté par les messages: reçoit des messages de JMS.
17
sbose

Les beans Java se réfèrent aux classes avec uniquement des champs et leurs méthodes getter-setter. Avec peu ou de préférence aucune logique métier. Ils sont également connus sous le nom de POJO (Plain Old Java Object).

Les EJB font partie de la spécification J2EE qui peut être utilisée pour exploiter toutes les fonctionnalités des serveurs conformes J2EE, telles que les transactions, la gestion de session, la sécurité, etc. (cela ne signifie pas que vous ne pouvez pas les utiliser sans utiliser les EJB)

7
saugata

Les "Java Beans" sont utilisés pour boutique les données données récupérées de la base de données et utilisé comme récipient pour transporter les données entre les servlets et les JSP dans Modèle MVC. Une classe (conteneur) avec des setters et des getters est utilisée pour (mettre) et (obtenir) les données.

"Enterprise Java Beans" sont similaires à "Java Beans" avec fonctionnalités ajoutées tel que Gestion de session, sécurité, transaction, etc. avec le aide de différents types d'EJB qui sont

  1. Session Bean
  2. Bean d'entité
  3. Haricots pilotés par message
3
user2790341