Heim >Java >javaLernprogramm >Welche Java EE 6-Annotationen sollten Sie für die Bean-Verwaltung und Abhängigkeitsinjektion verwenden?
Java EE 6 Bean Management: Ein umfassender Leitfaden für @ManagedBean, @Inject und @Named
Java EE 6 führt eine Vielzahl von ein Anmerkungen zur Bean-Verwaltung und Abhängigkeitsinjektion, was ein wenig Verwirrung stiftet. Ziel dieses Leitfadens ist es, die Komplexität zu entschlüsseln und klare Nutzungsrichtlinien für @javax.annotation.ManagedBean, @javax.inject.Named, @javax.faces.ManagedBean und @javax.inject.Inject festzulegen.
Bean-Typen in Java EE 6 verstehen
Verwaltete Beans sind Objekte, deren Lebenszyklen von Containern verwaltet werden. Java EE 6 verfügt über verschiedene Container, die ihre eigenen Bean-Typen verwalten:
Wann jede Annotation verwendet werden soll
@javax.annotation.ManagedBean
Diese Annotation deklariert eine Bean, die vom EJB-Container verwaltet wird. Es wird verwendet, um verwaltete Beans für EJB-Anwendungen zu erstellen.
@javax.inject.Named vs. @javax.faces.ManagedBean
Beide Annotationen identifizieren Beans, die sein können namentlich erwähnt. @javax.inject.Named wird für CDI- und EJB-Beans verwendet, während @javax.faces.ManagedBean speziell für JSF-Beans ist.
@javax .inject.Inject
Diese Annotation wird für die Abhängigkeitsinjektion in CDI- und EJB-Kontexten verwendet. Es injiziert Beans in andere Beans und ermöglicht ihnen den Zugriff auf notwendige Abhängigkeiten.
Beispielverwendung
EJB:
@Stateless @ManagedBean public class MyEJB { ... }
CDI:
@Named("myBean") @RequestScoped public class MyBean { @Inject private MyService service; ... }
JSF:
@ManagedBean(name="myManagedBean") @RequestScoped public class MyManagedBean { ... }
Die richtige Bohne auswählen
Verwenden Sie niemals @javax.faces.ManagedBean, es sei denn, dies ist für Servlet-Container ohne CDI-Unterstützung erforderlich.
Verwenden Sie CDI-Beans für die meisten Szenarien, es sei denn, Sie benötigen die erweiterten Funktionen von EJBs wie Transaktionsmanagement oder Zustandserhaltung.
Verwenden Sie EJBs, wenn Sie auf entfernte oder lokale EJBs zugreifen, verteilte Transaktionen verwalten und erweiterte Unternehmensfunktionen nutzen müssen.
Für die @ViewScoped-Unterstützung in CDI sollten Sie eine kompatible Bibliothek wie Seam-Faces oder MyFaces CODI verwenden oder sich für @ViewAccessScoped oder @ConversationScoped entscheiden.
Das obige ist der detaillierte Inhalt vonWelche Java EE 6-Annotationen sollten Sie für die Bean-Verwaltung und Abhängigkeitsinjektion verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!