web-dev-qa-db-fra.com

Différence entre Javabean et EJB

Juste une simple question d'un parent Java newbie:

quelle est la différence entre un JavaBean et un EJB?

39
LRE

Le bean Java n'est qu'un ensemble de conventions. EJB est une norme pour les composants métier J2EE.

Plus précisément, un bean Java:

  • a un constructeur par défaut public;
  • les méthodes de propriété lisibles précèdent avec "get";
  • les méthodes de propriété accessibles en écriture précèdent par "set"; et
  • est sérialisable.

Par exemple, un bean Java avec une propriété "margin" devrait ressembler au moins à ceci:

public class MyBean implements Serializable {
  private int margin;

  public MyBean() { }
  public int getMargin() { return margin; }
  public void setMargin(int margin) { this.margin = margin; }
}

EJB, malgré son nom, est presque complètement indépendant.

33
cletus

Jetez un œil à cet article - JavaBeans vs Enterprise JavaBeans

RÉSUMÉ:

[~ # ~] jb [~ # ~]

JavaBeans adopte une approche de bas niveau pour développer des composants logiciels réutilisables qui peuvent être utilisés pour créer différents types d'applications Java (applets, applications autonomes, etc.) dans n'importe quel domaine.

[~ # ~] ejb [~ # ~]

Enterprise JavaBeans adopte une approche de haut niveau pour créer des systèmes distribués. Il permet au développeur d'applications de se concentrer uniquement sur la programmation de la logique métier tout en supprimant la nécessité d'écrire tout le code de "plomberie" requis dans toute application d'entreprise.

11
adatapost
  1. Les JavaBeans peuvent être visibles ou non visibles au moment de l'exécution. Par exemple, le composant GUI visuel peut être un bouton, une zone de liste, un graphique ou un graphique.

    Un EJB est un objet distant non visuel.

  2. Les JavaBeans sont destinés à être locaux sur un seul processus et sont principalement destinés à s'exécuter côté client. Bien que l'on puisse développer des JavaBeans côté serveur, il est beaucoup plus facile de les développer en utilisant la spécification EJB à la place.

    Les EJB sont des composants exécutables à distance ou des objets métier qui ne peuvent être déployés que sur le serveur.

  3. JavaBeans est une technologie de composants pour créer des composants génériques Java qui peuvent être composés ensemble en applets et applications.

    Même si EJB est une technologie de composant, il ne s'appuie ni ne prolonge la spécification JavaBean d'origine.

  4. Les JavaBeans ont une interface externe appelée l'interface des propriétés, qui permet à un outil de générateur d'interpréter la fonctionnalité du bean.

    Les EJB ont un descripteur de déploiement qui décrit ses fonctionnalités à un outil de génération externe ou à un IDE.

  5. Les JavaBeans peuvent avoir des classes BeanInfo, des éditeurs de propriétés ou des personnalisateurs.

    Les EJB n'ont aucun concept de classes BeanInfo, d'éditeurs de propriétés ou de personnalisateurs et ne fournissent aucune information supplémentaire autre que celle décrite dans le descripteur de déploiement.

  6. Les JavaBeans ne sont pas typés.

    Les EJB sont de deux types: les beans session et les beans entité.

  7. Aucun support explicite n'existe pour les transactions dans JavaBeans.

    Les EJB peuvent être transactionnels et les serveurs EJB fournissent un support transactionnel.

  8. Des ponts de composants sont disponibles pour JavaBeans. Par exemple, un JavaBean peut également être déployé en tant que contrôle Activex.

    Un EJB ne peut pas être déployé en tant que contrôle ActiveX car les contrôles ActiveX sont destinés à s'exécuter sur le bureau et les EJB sont des composants côté serveur. Cependant, la compatibilité CORBA-IIOP via le mappage EJB vers CORBA est définie par l'OMG.

7
Charu Jain
6
lutz

J'ai trouvé peu compliqué à comprendre à partir de la réponse acceptée, donc googlé quelques liens supplémentaires et obtenu la réponse ci-dessous.

Enterprise JavaBeans (EJB) 3.1 ce sont Spécifications J2EE qui demande au serveur (application server) pour déployer un morceau de code dans Conteneur EJB.

La technologie EJB est l'architecture de composants côté serveur pour le développement et le déploiement d'applications métier basées sur les composants. La technologie EJB permet un développement rapide et simplifié d'applications distribuées, transactionnelles, sécurisées et portables basées sur la technologie Java EE 6.

En langage simple: Si vous créez un EJB et le déployez sur le serveur, il peut être appelé à distance (en utilisant une certaine technique, c'est-à-dire une recherche JNDI en utilisant RMI) ou localement (c'est-à-dire avec dans une application).

D'autre part, Java beans , est une simple classe Java classe avec des getters et setters et cette classe est sérialisée, voici l'exemple:

public class MyBean implements Java.io.Serializable
{
   protected  int theValue;

   public MyBean()
   {
   }

   public void setMyValue(int newValue)
   {
      theValue = newValue;
   }

   public int getMyValue()
   {
      return theValue;
   }
}

Donc, cela signifie qu'il n'y a pas de comparaison entre l'EJB et Java Beans, les deux sont des concepts totalement différents.

5
Vishrant