Saltar al contenido

¿Debo usar @EJB o @Inject?

Nuestro team de especialistas despúes de muchos días de investigación y recopilación de de datos, obtuvimos la respuesta, queremos que te sea de gran utilidad para tu plan.

Solución:

los @EJB se usa solo para inyectar EJB y está disponible desde hace bastante tiempo. @Inject puede inyectar cualquier bean administrado y es parte de la nueva especificación CDI (desde Java EE 6).

En casos simples, simplemente puede cambiar @EJB para @Inject. En casos más avanzados (por ejemplo, cuando depende en gran medida de @EJB‘s attributes me gusta beanName, lookup o beanInterface) que para usar @Inject tendrías que definir un @Producer campo o método.

Estos recursos pueden ser útiles para entender las diferencias entre @EJB y @Produces y cómo obtener lo mejor de ellos:

Blog de Antonio Gonçalves:
CDI Parte I
CDI Parte II
CDI Parte III

Documentación de JBoss Weld:
CDI y el ecosistema Java EE

Desbordamiento de pila:
Inyectar el bean @EJB según las condiciones

@Inject puede inyectar cualquier frijol, mientras @EJB solo puede inyectar EJB. Puede usar cualquiera para inyectar EJB, pero prefiero @Inject En todas partes.

Actualizar: Esta respuesta puede ser incorrecta o estar desactualizada. Por favor vea los comentarios para más detalles.

cambié de @Inject para @EJB porque @EJB permite la inyección circular mientras que @Inject vomita encima.

Detalles: necesitaba @PostConstruct llamar a un @Asynchronous pero lo haría sincrónicamente. La única forma de realizar la llamada asincrónica era hacer que el original llamara a un método de otro bean y que devolviera la llamada al método del bean original. Para hacer esto, cada frijol necesitaba una referencia al otro, por lo tanto, circular. @Inject falló en esta tarea mientras que @EJB trabajó.

Comentarios y calificaciones del tutorial

Si guardas alguna desconfianza o disposición de reaccionar nuestro enunciado te recomendamos escribir un informe y con gusto lo leeremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *