Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Diferenças EJB para CDI

Eu sei que EJB tem um escopo maior , mas vejo muitos códigos antigos usando a anotação @Ejb em atributos , igual como se fosse @Inject to cdi e @autowired no spring. Mas não costuma se falar que o Ejb tem injeção de dependências e fica meio que escondido isso , mas muita gente usa o Ejb desta maneira ainda , gostaria de saber quais são as grandes diferenças do ejb para cdi no contexto de injeção de dependências.

1 resposta
solução!

O @EJB é usado para injetar apenas EJBs e está disponível há algum tempo. @Inject pode injetar qualquer bean gerenciado e faz parte da nova especificação CDI (desde o Java EE 6). Em casos simples, você pode simplesmente mudar @EJB para @Inject. Em casos mais avançados (por exemplo, quando você depende muito dos atributos beanName do @EJB, lookup ou do beanInterface) para usar @Inject você precisaria definir um @Producer também.

O @EJB também permite injetar um EJB dentro de outro. Ou seja, no passado, você só podia usar a injeção de dependências de EJB para EJB. Com o advento do CDI e a anotação @ Inject, você pode injetar qualquer bean (seja ele EJB ou não) dentro de outro bean gerenciado pelo CDI. Nesse contexto, o @Inject é mais amplo e menos restrito.

Se você não usa nenhuma propriedade da anotação @EJB, vai de @Inject! :)