Ich habe noch nie irgendwo gesehen, dass Sie @Resource
für die Injektion eines EJB verwenden können. Es könnte in einigen Servern funktionieren, aber es ist unwahrscheinlich, dass es tragbar ist.
Die Frage von @EJB
vs @Inject
ist komplizierter.
CDI und @Inject
wurden der Java EE 6 Spezifikation hinzugefügt. Dort war es möglich @ EJBs in eine CDI Bean zu injizieren, aber nicht in zu vielen anderen (wenn überhaupt) Orten.
Die Java EE 7 Spezifikation vereinheitlicht dies im Wesentlichen bis zu dem Punkt, wo Sie @Inject
oder @EJB
austauschbar in den meisten (wenn nicht alle) Orten verwenden können. Im Wesentlichen mussten alle "Sub" -Spezifikationen wie die EJB-Spezifikation selbst, die Servlet-Spezifikation, JAX-WS, JAX-RS usw. aktualisiert werden, um die Verwendung von @Inject
sowie @EJB
zu unterstützen. Wenn Sie jedoch eines der Attribute angeben müssen, die in der @ EJB-Annotation verfügbar sind, sind diese unter @Inject nicht verfügbar.
Daher können Sie @Inject
überall verwenden, wenn Sie in einer Java EE 7-kompatiblen Umgebung arbeiten und keine der @EJB-Attribute benötigen, andernfalls verwenden Sie @EJB
.
@Resource wird auch von Spring verwendet. Ich denke, es würde immer noch gelten, wenn Sie sich dafür entscheiden, POJOs anstelle von EJBs zu verwenden. – duffymo