Verstehen der Unterschiede zwischen Java EE 6 Bean-Annotationen
In Java EE 6 stehen mehrere Annotationssätze zum Erstellen verwalteter Beans und zum Injizieren zur Verfügung Abhängigkeiten und Verwaltung ihres Lebenszyklus:
-
EJB-Anmerkungen: @Stateful, @Stateless
- Wird zum Erstellen von Enterprise JavaBeans (EJBs) verwendet. , die verteilte Komponentenmodelle und Transaktionsverwaltung bereitstellen.
-
javax.annotation.ManagedBean:
- Eine ältere Annotation wird verwendet zum Erstellen verwalteter Beans.
- Veraltet zugunsten von CDI-verwalteten Beans und EJBs.
-
javax.faces.ManagedBean, @SessionScoped, @RequestScoped :
- Anmerkungen speziell für von JavaServer Faces (JSF) verwaltete Beans.
- Wird zum Definieren von Beans mit unterschiedlichen Bereichen innerhalb von JSF-Anwendungen verwendet.
-
javax.enterprise.context.SessionScoped, @RequestScoped:
- Annotationen, die von verwalteten Beans mit Kontext- und Abhängigkeitsinjektion (CDI) verwendet werden.
- Definieren Sie den Umfang von CDI-Beans innerhalb einer Anwendung.
-
javax.inject.Named, @Inject:
- Von CDI-Beans verwendete Annotationen.
- @Named identifiziert eine Bean zur Injektion, während @Inject die zu injizierende Abhängigkeit angibt.
Beziehungen und Verwendung
CDI-verwaltete Beans sind das primäre Abhängigkeitsinjektions- und Bean-Management-Framework in Java EE 6. CDI-Beans lassen sich in EJBs integrieren, sodass EJBs in CDI-Beans injiziert werden können und umgekehrt.
JSF-verwaltete Beans sind spezifisch für JSF-Anwendungen. Sie können innerhalb von JSF-Seiten verwendet werden, ihr Umfang und ihre Funktionalität sind jedoch im Vergleich zu CDI-Beans eingeschränkt.
Abhängigkeiten injizieren
- @EJB: Wird zum Injizieren von EJBs verwendet in EJBs oder CDI-Beans.
- @Inject: Wird verwendet, um CDI-Beans in andere CDI-Beans oder in EJBs zu injizieren.
- @ManagedProperty: Eine ältere Annotation, die zum Injizieren von Beans in EJBs oder JSF-verwaltete Beans verwendet wird . Es ist zugunsten von @Inject veraltet.
Das obige ist der detaillierte Inhalt vonWie unterscheiden sich Java EE 6-Bean-Annotationen für verwaltete Beans, Abhängigkeitsinjektion und Lebenszyklusverwaltung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn