javax.enterprise.context.SessionScoped
(JSR 346) e tutte le altre annotazioni dal pacchetto javax.enterprise.context.*
mantenere contesto CDI. CDI fornisce un meccanismo alternativo, versatile e più potente per l'iniezione delle dipendenze, il bean e la gestione generale delle risorse all'interno dello spazio Java EE. È un'alternativa ai bean gestiti da JSF ed è addirittura in grado di sostituire il meccanismo di gestione dei bean JSF nel coming version of JSF.
Attualmente, i bean con annotazione JSF e CDI sono intercambiabili all'interno di qualsiasi applicazione Web Java EE fornita (a causa di alcune restrizioni minori). Tuttavia, i bean con annotazioni CDI si estendono ben oltre l'ambito del livello Web, motivo per cui le specifiche Java EE si stanno evolvendo per rendere CDI il meccanismo standard di bean e DI.
Mentre CDI potrebbe essere una scelta ovvia per tutto lo sviluppo di Java EE, i bean gestiti JSF sono portabili su contenitori servlet (Tomcat) e server applicazioni (Glassfish, JBoss, ecc.). I bean CDI possono vivere solo con server di applicazioni completi. Con some legwork tuttavia, Tomcat 7 può essere cablato per supportare CDI.
In particolare, javax.enterprise.context.SessionScoped
è l'implementazione parallela di JSF Session Scope all'interno di CDI.
javax.faces.bean.SessionScoped
(JSR 314) e tutte le altre annotazioni dal pacchetto javax.faces.bean.*
mantengono l'iniezione di dipendenza e meccanismo di gestione bean JSF-specifico. I bean annotati con annotazioni JSF tuttavia sono utili solo all'interno del livello web. Tutti gli ambiti disponibili con annotazioni JSF sono stati replicati all'interno della specifica CDI.
javax.annotation.ManagedBean
(JSR 316) e altre annotazioni di-correlato sotto javax.annotation.*
sono un tentativo di generalizzare le annotazioni JSF-based per altri usi all'interno le specifiche Java EE e davvero non devono essere utilizzati entro la fine-sviluppatore.
Perché esistono? Bene IMO, il passaggio dai fagioli JSF ai fagioli CDI è una naturale evoluzione della tecnologia. I fagioli JSF hanno avuto una buona corsa, ma quelli come Spring, Guice e Seam hanno reso evidente che la tecnologia non era sufficiente. Era inoltre necessario colmare il divario tra i componenti web e gli EJB e la risposta a tale esigenza è la CDI.
Vedi queste domande relative anche: