Dúvida sobre uso de EJB

7 respostas
G

Olá,

Eu verifiquei o seguinte artigo: Aplicação Web Completa JSF EJB JPA JAAS.

Estou desenvolvendo uma aplicação para trabalho de faculdade e vou utilizar JSF + Hibernate. Gostaria de saber:

  1. Quais as vantagens e desvantagens do uso de EJB na aplicação do artigo acima? (não precisa citar tudo, só resumir o que é relevante)
  2. Se o cara simplesmente tirasse todas aquelas anotações e importações EJB das classes de Session Beans, o projeto ainda funcionaria, certo?
  3. Seria interessante utilizar EJB somente em projetos de grande porte/modularizados/distribuídos? Se for, entenderei o porque de não ver muita utilidade nele para meu projeto pequeno.

Obrigado!

7 Respostas

Flavio_machine

Com o EJB vc poderá futuramente acessar as classes de uma aplicação swing ou mobile, ou outras aplicações na mesma jvm, e poderá contar com vários outros serviços que já vem com a especificação EJB, como timer service, jms, transações … sem tem que se preocupar em ficar colocando um tanto de framework.

Hebert_Coelho

Sou meio suspeito de falar desse ótimo post aí ( :lol: ) em cima mas… vamos lah:

  1. O Flávio respondeu muito bem.
  2. Não funcionaria. Pois por causa das anotações o JBoss está controlando as sessões e transações com o banco de dados. É preciso que você crie a conexão de modo manual a cada chamada do banco de dados. Aqui tem um exemplo: Hibernate 3 com JPA 2.
  3. Eu indico EJB para projeto grandes e pequenos, pois ele vai fazer todo o trabalho sujo para você de conexão/transação. Uma vez que a estrutura esteja pronta, seu uso é ultra fácil e simples.
G

Jake,

Quando você diz que o JBoss está controlando as transações do banco de dados está se referindo a haver uma única LUW para vários programas/session beans? É isso que aquele @PersistentContext faz? Poderia me explicar um pouco melhor?

E o que seria o JBoss estar controlando as sessões? Seriam as anotações @SessionBean? Não entendo qual a diferença de deixar essas classes com @SessionBean e sem @SessionBean, aparentemente a aplicação funcionaria do mesmo jeito. * Entendo como controlar sessão um recipiente onde eu possa incluir e recolher variáveis durante a conexão com um usuário / sessão, o que o HTTP sozinho não permite. Penso que qualquer servidor de aplicação web, como o Tomcat, permite controlar a sessão de usuários. O que um container de EJB faria de melhor?

Se estou falando muita besteira podes me recomendar um artigo bom sobre EJB? Vi vários vídeos e artigos, mas até agora não entendi que benefícios grandes isso traria para minha aplicação pequena. Você falou que acredita que EJB seja benéfico para aplicações pequenas também.

Hebert_Coelho

gpassero:
Jake,

Quando você diz que o JBoss está controlando as transações do banco de dados está se referindo a haver uma única LUW para vários programas/session beans? É isso que aquele @PersistentContext faz? Poderia me explicar um pouco melhor?

E o que seria o JBoss estar controlando as sessões? Seriam as anotações @SessionBean? Não entendo qual a diferença de deixar essas classes com @SessionBean e sem @SessionBean, aparentemente a aplicação funcionaria do mesmo jeito.

Se estou falando muita besteira podes me recomendar um artigo bom sobre EJB? Vi vários vídeos e artigos, mas até agora não entendi que benefícios grandes isso traria para minha aplicação pequena. Você falou que acredita que EJB seja benéfico para aplicações pequenas também.


Eu acho que é benefício pois eu sei como funciona.

Realmente você precisa estudar EJB e saber a diferença de um @Statless e um Statefull por exemplo.

@SessionBean não é anotação do ejb nem de JSF.

Quando eu digo transações eu digo transação com o Banco de Dados.

Começa por baixo já que você tem dificuldade. Entenda JDBC, depois vá para JPA/Hibernate e finalmente EJB.

Se sua aplicação é pequena e você não entendeu EJB fique apenas com JPA/Hibernate que você será feliz. [=

G

Jake,

Já conheço o suficiente de JDBC e Hibernate para minha aplicação, inclusive consigo implementá-la utilizando essas duas tecnologias.
No entanto, gostaria de aplicar EJB apenas para aprender mesmo, tens algum artigo ou apostila que recomendas?

Hebert_Coelho

Melhor livro que eu já li sobe EJB até agora foi esse: http://www.amazon.com/Enterprise-JavaBeans-3-0-ebook/dp/B0026OR326/ref=sr_1_8?s=digital-text&ie=UTF8&qid=[telefone removido]&sr=1-8

G

Obrigado!

Criado 30 de janeiro de 2012
Ultima resposta 31 de jan. de 2012
Respostas 7
Participantes 3