2013-02-24 12 views

risposta

44
  1. 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.

  2. 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.

  3. 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: