2013-06-07 16 views
7

Sto leggendo un vecchio post in StackOverflow, Il contenuto:Qual è la differenza tra JavaBean e ManagedBean

In the big architectural picture, your own JSF code is the V: 

M - Business domain/Service layer (e.g. EJB/JPA/DAO) 
V - Your JSF code 
C - FacesServlet 

In the smaller developer picture, the architectural V is in turn dividable as follows: 

M - Entity 
V - JSP/XHTML page 
C - Managed bean 

So it's basically a M(MVC)C. 

Sul caso superiore, il JavaBean è un modello,

Ma sul caso inferiore, il bean gestito diventa un controller?

Non sono la stessa cosa> ?? Qual è la differenza?

risposta

9

Risposta breve: 'Managed Bean' è un nome breve legacy per bean gestito JSF. È un bean Java gestito da JSF.

lunga:

Un fagiolo è tipicamente un POJO (semplice oggetto java vecchia), gestito da un contenitore.

Gestito significa che la creazione/distruzione, il numero di istanze, il loro ambito e l'invocazione di un determinato metodo sono gestiti dal contenitore.

I contenitori sono generalmente forniti dal server sottostante. In Java EE hai un contenitore diverso (CDI, EJB, Web, ecc ...)

JSF Managed Bean sono bean gestiti dal contenitore JSF, EJB sono gestiti dal contenitore EJB, Servlet/filtri dal contenitore servlet, entità JPA da EntityManager, ecc.

Ad esempio, su un server tomcat, si dispone solo del contenitore Web (servlet) e non di EJB uno. Se si utilizza JSF (è necessario fornire una dipendenza associata) verranno gestiti anche i bean.

+0

EFB e Managed Bean sono tutti bean Java giusti? –

+1

sì, ogni oggetto java gestito da un contenitore è un java bean – Gab

+0

Sto imparando l'applicazione JSP e non so dove mettere la logica di business. Dov'è la parte del controller? –