2010-03-17 11 views
36

Sono diversi o sono usati in modo intercambiabile? Se sono diversi, quindi cosa li ha resi diversi gli uni dagli altri?Differenza tra Java Bean ed Enterprise Java Beans?

+1

Dupe: http://stackoverflow.com/questions/1361758/difference-between-javabean-and-ejb – Zaki

+0

Vedi anche: http://stackoverflow.com/questions/1163139/pojo-vs-ejb-vs-ejb- 3 – Zaki

risposta

39

Un JavaBean è solo un semplice oggetto Java vecchio conforme a determinate convenzioni incluso l'uso di funzioni accessorie (getFoo/setFoo) per l'accesso dei membri, la fornitura di un costruttore predefinito e alcune altre cose simili.

Un JavaBean Enterprise è un componente in un server di applicazioni Java EE disponibile in vari formati, i cui dettagli variano a seconda della versione di Java EE di cui si sta parlando (o, più specificamente, quale specifica serie di specifiche EJB sono coinvolti).

I JavaBeans erano originariamente pensati principalmente per essere utilizzati negli strumenti di costruzione fornendo un'interfaccia nota che potrebbe essere ricercata attraverso l'introspezione negli strumenti. Hanno trasformato rapidamente in ciò che equivale a una religione, tuttavia.

I JavaBeans aziendali sono concepiti per fornire logica aziendale incapsulata per applicazioni aziendali all'interno di un contenitore generale che fornisce elementi quali la gestione delle sessioni, la sicurezza, il pool di risorse, ecc. Come servizi consentendo così alla logica aziendale di essere (relativamente) non trattata da questi cross -creare le preoccupazioni. (Se sono riusciti o meno a farlo, è una questione dibattuta, data la difficoltà che avrebbero dovuto utilizzare all'inizio. Le versioni più recenti delle specifiche lo hanno reso più semplice, tuttavia. Le app legacy, tuttavia, sono ancora dolorose e purtroppo . probabile che la maggior parte della EJB è molto probabile incontrare)


a cura di aggiungere:

+2

Stavo per finire una risposta quasi identica, ma mi hai battuto così ho deciso di fare +1 su invece. Buon lavoro. – Fredrik

+0

Grazie. Sarei stato interessato, tuttavia, a vedere la tua opinione su di esso. Mi piace sempre leggere le prospettive degli altri sulle informazioni. –

+0

@ttmrichter: Beh, hai coperto tutto e poche altre cose, quindi le mie riprese non valevano davvero la pena pubblicarle. L'unica cosa che penso manchi è stata un tentativo confuso di descrivere MDB, CMP e session bean, ma non ero molto contento del tentativo, quindi è altrettanto buono. – Fredrik

6

I bean Java si riferiscono a classi con solo campi e metodi getter-setter. Con poca o preferibilmente nessuna logica di business. Sono anche noti come POJO (Plain Old Java Object).

EJB di fanno parte della specifica J2EE che può essere utilizzato per sfruttare tutte le funzionalità di server compatibili J2EE, come le transazioni, la gestione delle sessioni, la sicurezza ecc (Ciò non significa che non è possibile utilizzare questi senza usare EJB)

+0

Quindi un EJB è come un bean Java esteso? Con alcune funzionalità extra? –

14

Un bean Java è definito come un'istanza di una classe che contiene attributi privati ​​(dati) e metodi di settaggio getter &.

se si dispone di:

String myString privato; nella tua classe, dovresti avere i metodi public String getMyString(); e public void setMyString (String settingString); definito nel tuo codice. Sebbene, ho trovato che non è assolutamente necessario avere tutto definito; non essere sorpreso se qualcosa si rompe!

Un EJB (Enterprise Java Bean) è molto più complesso. Risiedono solo nei server applicazioni che gestiscono EJB (Tomcat non detiene EJB). Esistono 3 tipi di EJB:

  1. Sessione: di solito contengono alcune logiche di business.
  2. Entità: solitamente interfaccia con un archivio dati (ad esempio un database).
  3. Message-Driven: riceve messaggi da JMS.
+0

Si noti che ora c'è TomEE, server Tomcat che supporta EJB (e il profilo Web completo): http://tomee.apache.org/tomcat-ejb.html. –

3

"Java Beans" vengono utilizzati per memorizzare i dati dati recuperati dal database e utilizzati come un contenitore di per trasportare i dati tra le servlet e JSP in MVC modello. Una classe (container) con setter e getter è usata per (mettere) e (ottenere) i dati.

"Enterprise Java Beans" sono similari a "Java Beans" con caratteristiche aggiunte quali Session Management, Sicurezza, transazioni ecc con l' ausilio di diversi tipi di EJB che sono

  1. Session Bean
  2. Entity Bean
  3. Message Driven Beans
Problemi correlati