Duvidas e confusoes com os frameworks (EJB, Seam, Spring...)

3 respostas
igor_ks

Bom dia a todos

estou iniciando agora com Java… e estou vou iniciar um projeto aqui do trampo com EJB + JBoss Seam3, estava estudando ambas tecnologias e apareceu uma duvida…

ambos possuem injecao de dependencias… quando que uso um @EJB ao inves de @In (Seam3), qual a diferenca entre eles?
quando uso um @Statefull (EJB) ou quando uso @Scope(ScopeType.SESSION) do Seam3

Vejo que dos frameworks, eles possuem algumas funcionalidades iguais (me corrijam se eu estiver errado)… isso me acaba deixando bastante confuso

Mesma duvida pra @Resource do javax.annotation e @Autowired do Spring

3 Respostas

clunsde

ambos possuem injecao de dependencias… quando que uso um @EJB ao inves de @In (Seam3), qual a diferenca entre eles?
quando uso um @Statefull (EJB) ou quando uso @Scope(ScopeType.SESSION) do Seam3

Primeiro @In é do Seam 2, não do Seam 3, Seam 3 é baseado no CDI … se você não conhece CDI é melhor dar uma estudada primeiro.
http://docs.jboss.org/weld/reference/latest/en-US/html/part-1.html

Quando você está em um bean CDI, você pode utilizar tanto @EJB como @Inject. Quando você usa @Statefull juntamente com o @SessionScoped , depende de quem está chamando o método dessa tua classe, se for outro EJB chamando, este usará o ciclo de vida do EJB, caso seja um requisição de uma página web (EJB não conhece requisições WEB), este terá o ciclo de vida definido pelo Scope , no teu caso Session.

Sobre Spring eu não posso te ajudar, pois não conheço.

Abraços.

igor_ks

Hummm, blz!
Me esclareceu agora…

então depende de suas relacoes com outras classes…

Obrigado por me corrigir de que @In é do Seam2 :wink:
Dei uma estudada sobre o CDI, mas bem por cima

clunsde

Podes dar uma olhada aqui também

Abraços

Criado 29 de novembro de 2011
Ultima resposta 29 de nov. de 2011
Respostas 3
Participantes 2