Es gibt zwei mir bekannte Möglichkeiten, eine EJB-Instanz zu erhalten:
- Dependency Injection in Servlets und EJBs über die @EJB-Annotation
- JNDI-Lookup über Context.lookup überall
Was sind die Unterschiede, Auswirkungen und Probleme bei der Verwendung dieser beiden Ansätze? Sind sie identisch? Ist Dependency Injection schneller als Lookup? Wie sieht es mit der Transaktionsverarbeitung und der Verwaltung des Objektlebenszyklus aus?
Zu den Dingen, die mir bekannt sind, gehören:
Anmerkung
- funktioniert nur mit Servlets und EJBs
- passende Syntax
- containerunabhängig
Nachschlagen
- kann verschiedene Implementierungen der EJB-Schnittstelle zur Laufzeit programmatisch instanziieren.
- funktioniert von überall - z.B. POJOs.
- hängt von der Namenskonvention des Containers ab