2013-02-24 9 views

Antwort

44
  1. javax.enterprise.context.SessionScoped (JSR 346) und alle anderen Anmerkungen unter dem javax.enterprise.context.* Paket halten den Kontext CDI. CDI bietet einen alternativen, vielseitigen und leistungsfähigeren Mechanismus für das Dependency-Injection-, Bean- und allgemeine Ressourcen-Management innerhalb des Java EE-Bereichs. Es ist eine Alternative zu JSF-verwalteten Beans und setzt sogar den JSF-Bean-Management-Mechanismus in coming version of JSF außer Kraft.

    Gegenwärtig sind annotierte JSF- und CDI-Beans in jeder Java EE-Webanwendung austauschbar (vorausgesetzt, es gibt eine Handvoll geringfügiger Einschränkungen). CDI-annotierte Beans reichen jedoch weit über den Bereich der Web-Ebene hinaus, weshalb sich die Java EE-Spezifikation weiterentwickelt, um CDI zum Standard-Bean- und DI-Mechanismus zu machen.

    Während CDI eine offensichtliche Wahl für alle Java EE-Entwicklung sein könnte, sind JSF-gemanagte Beans portierbar über Servlet-Container (Tomcat) und Anwendungsserver (Glassfish, JBoss usw.). CDI-Beans können nur in vollständigen Anwendungsservern verwendet werden. Mit some legwork kann Tomcat 7 jedoch so verdrahtet werden, dass es CDI unterstützt.

    Speziell javax.enterprise.context.SessionScoped ist die parallele Implementierung des JSF Session Scope in CDI.

  2. javax.faces.bean.SessionScoped (JSR 314) und alle anderen Anmerkungen unter dem javax.faces.bean.* Paket, um das JSF-spezifische Dependency Injection und Bean-Management-Mechanismus aufrechtzuerhalten. Beans, die mit JSF-Anmerkungen versehen sind, sind jedoch nur innerhalb der Web-Ebene nützlich. Alle Bereiche, die mit JSF-Annotationen verfügbar sind, wurden innerhalb der CDI-Spezifikation repliziert.

  3. javax.annotation.ManagedBean (JSR 316) und andere DI-bezogene Anmerkungen unter javax.annotation.* sind ein Versuch, die JSF-basierten Anmerkungen für andere Zwecke innerhalb der Java EE-Spezifikation zu verallgemeinern und wirklich nicht bis zum Ende-Entwickler verwendet werden sollen.

Warum existieren sie? Naja IMO, der Wechsel von JSF Beans zu CDI Beans ist eine natürliche Evolution der Technologie. JSF-Beans hatten einen guten Lauf, aber Spring, Guice und Seam machten deutlich, dass die Technologie nicht ausreichte. Es war auch notwendig, die Lücke zwischen den Webkomponenten und den EJBs zu schließen, und die Antwort auf diesen Bedarf ist CDI.

Sehen Sie diese Fragen zu:

Verwandte Themen