Projeto EJB (Tutorial do uaihebert)

Pessoal estou com uma dúvida.

Estou seguindo o tutorial do nosso amigo uaihebert no seguinte link:
http://uaihebert.com/aplicacao-web-completa-jsf-ejb-jpa-jaas/

Qual a vantagem de eu ter um projeto EJB para a persistencia e outro para web e no final unir os dois?
Qual a diferença entre @EJB e o @Inject?

Obrigado

Na verdade, nem todos os sistema são indicados a utilizar EJB.

É preciso ter a certeza de que seu sistema terá requisitos como escalabilidade, disponibilidade e assim vai.

Caso seu projeto seu ideal para o uso de EJB você poderá começá-lo dentro de um artefato, e quando necessário, separar EJB em um server e view em outro. Note que a arquitetura inicial do seu projeto será mais simples.

@EJB é para indicar que vc está injetando um EJB. @Inject é quando você usa CDI e vai injetar algum componente por CDI.

Opa,
Ficou bem claro agora.

Obrigado pela resposta.

Cara uma pergunta sobre o JAAS.

A algum tempo atras utilizava spring-security com JSF2.

O spring-security me possibilitava fazer varios tipos de controles.

Por exemplo:
O spring-security me permitia fazer controle direto nos componentes(botões, edits, etc) com a tag <sec:ifAnyGranted roles=“ROLE_USUARIO”> ou também com a sec:isAuthenticated.

Minha pergunta é: O JAAS também me permite fazer algo deste tipo?

[quote=fabiocesar.ti]Cara uma pergunta sobre o JAAS.

A algum tempo atras utilizava spring-security com JSF2.

O spring-security me possibilitava fazer varios tipos de controles.

Por exemplo:
O spring-security me permitia fazer controle direto nos componentes(botões, edits, etc) com a tag <sec:ifAnyGranted roles=“ROLE_USUARIO”> ou também com a sec:isAuthenticated.

Minha pergunta é: O JAAS também me permite fazer algo deste tipo?[/quote]Com jsf você poderia delegar isso para o ManagedBean acessar o JAAS através do contexto, ou algo do tipo:
#{facesContext.externalContext.isUserInRole(‘ADMIN’)}
#{request.isUserInRole(‘administrator’)}

Isso foram exemplos simples que achei aqui. Na internet vc acha mais coisa. [=

Beleza,

Vou procurar mais sobre isso.

Obrigado

Mais uma pergunta.

Se eu usar @EJB, o contêiner que vai gerenciar as transações de forma automática.
Se eu usar @Inject, tenho que tratar na mão as transações?

[quote=fabiocesar.ti]Mais uma pergunta.

Se eu usar @EJB, o contêiner que vai gerenciar as transações de forma automática.
Se eu usar @Inject, tenho que tratar na mão as transações?[/quote]Você testou? O que aconteceu?

Cara, eu estou utilizando o @Inject, até agora não estou fazendo o controle da transação.
A principio eu acho que o contêiner está gerenciando a transação pra mim.

A dúvida surgiu porque vi em um tutorial que quando se usa o @EJB o contêiner gerencia toda a transação pra você.
Posso declarar a annotation @ApplicationException(rollback = true). Com ela posso lançar as minhas exceptions e o contêiner gerencia e da um roolback na transação.

Ai fiquei na dúvida se usando o @Inject também tenho esses benefícios que o @EJB me proporciona (Annotation ApplicationException) e gerenciamento automático de transação.

Os dois me proporcionam estes benefícios que listei acima Hebert Coelho?

[quote=fabiocesar.ti]Os dois me proporcionam estes benefícios que listei acima Hebert Coelho?[/quote]Nunca trabalhei com CDI puro.
Tudo que você listou pode ser facilmente testado, por isso te perguntei c você havia testado. [=

Beleza, vou fazer os testes e posto os resultados.

Vlw

Tem algum livro ou existe alguma regra no que usar para os projetos ???

Qndo usar EJB ???
Qndo não usar ???

Quando usar um Normal para TomCat ??
Quando não usar ???

Um sistema aonde tem a conecção de um android com servidor … Qual usar ???

Para segurança o que usar … Filtros , Spring security ou JASS ???

Tem algum livro bom falando sobre isso ???
As vezes eu tenho um projeto e não sei como fazer !!! :slight_smile:
Eu uso o qual eu mais gosto … Jboss + JAAS + EJB3.1 ( exatamente do padrão do uaiHebert no Fórum, implementando as interfaces do Dao ) .

Então , qual o padrão para essa arquitetura ??

Eu estou com essa duvida :

No EJB fica so os DAO , Regras Negocios e suas interfaces .

No JSF fica apenas os ManagerBeans com suas xhtml …

??? Essa arquitetura está correto ???

– Caso eu quiser criar um @Sheduler , aonde eu coloco ???
– Caso eu quiser criar um lançador de e-mails … ???

Obrigado …