Bean Prime Distinzioni

J2EE Bean EJB 3.0 prima overview

Gli EJB hanno bisogno di un EJB container per funzionare, per esempio JBoss AS. Su tomcat solamente non girano.

Divisione

Gli Enterprise Java Bean 3.0 si dividono in due tipologie:

  • Entity
  • Session: che a sua volta si dividono in
    • Stateless, non mantengono lo stato tra le chiamate , possono essere avvicinati a una classe statica
    • Statefull, mantiene lo stato fin da quando è attiva, è più complicato nel progetto che seguo è stato usato solo in checkout
Entity Bean

Effettuano una mappatura 1 a 1 tra il DB e le istanze di una classe, realizzando così un controllo più fine rispetto all'uso diretto dei JDBC. Per mappare le entity con le tabelle si usano le annotazioni.

Session Bean

JBoss gestisce un pool di ne alloca così quando servono. Con i session bean si può andare fuori dalla virtual machine abbiamo la possibilità di usare call procedure.
In teoria ogni EJB può girare in una macchina diversa. Usa JNDI ma vi sono anche cose nascoste di cui si occupa lui.
Per ogni bean si possono definire local e remote. Local per la stessa jvm remote per jvm diverse, la comunicazione in quest'ultimo caso non avviene per indirizzo ma per valore serializzando il bean.

Sessione vs Entity

Nei session bean vi è la logica che implementa qualcosa sui dati. Nella applicazione che sto studiando vi sono alcuni strati che sono un po' ridondanti perchè usa un design pattern di tipo facade.
Tutti gli entity bean implementano operazioni che devono essere eseguite cioè query.
Tramite session facciamo operazioni sui bean.

JVM appunti

come regola, progetti JavaEE (che includono session beans e/o entity beans e/o message driven beans) dentro lo stesso server possono essere ospitati dentro la stessa vm a meno che non esplicitamente configurati altrimenti ogni altro progetto non Java EE (web application, console application, applicazione con servlets, etc.) girera' sulla propria vm

Salvo diversa indicazione, il contenuto di questa pagina è sotto licenza Creative Commons Attribution-ShareAlike 3.0 License