Simplificar arquitetura Spring, JSF e Hibernate (JPA)
7 respostas
smorigo
Pessoal, desenvolvi uma aplicação para servir de modelo utilizando Spring, JSF, Hibernate. Achei que a arquitetura que eu utilizei é muito complexa e gostaria de uma ajuda do pessoal para simplificar o que desenvolvi.
Criei meus Beans e seus Annotations
Criei uma Interface DAO e depois a implementação da minha Interface, no caso criei um DAO para cada Classe acredito que criar uma Interface Genérica com o CRUD seja mais inteligente.
Criei uma Interface para minha classe Service e depois a implementação da minha classe Interface
Criei uma Classe que é a acessada pela minha pagina JSF e seus objetos.
Achei essa arquitetura muito complexa e inchada, alguém possui alguma sugestão do que posso melhorar ?
IMHO se já está usando Hibernate (ou JPA), pode-se evitar o DAO e usar um PersistenceManager/EntityManager.
Ou seja, a implementação da camada de serviço já vai trabalhar em cima do model e salva o seu estado utilizando EntityManager ou PersistenceManager.
Obs: Entenda PersistenceManager como uma classe similar ao EntityManager do JPA, mas criado pelo próprio desenvolvedor.
Vocês acham que ainda justifica utilizar DAO’s? :roll:
AugustoCSS
Alguém discorda do que o Thiago disse? Principalmente na parte:
a implementação da camada de serviço já vai trabalhar em cima do model
tô iniciando no JPA e justamente com essa dúvida, pra que o DAO? ele ainda é necessário pra manter o acesso a dados desacoplado do negócio?
F
fabriciouesb
Rpz, concordo com o que o cara aí disse, esse DAO tá sobrando, qunado se trabalho com hibernate eu acho que o DAO perde o sentido, por o hibernate que faz o papel do DAO.
71C4700
Esta questao de utilizar ou nao o DAo é algo que muitos descutem. Eu particulamente, acho melhor utilizar, pois facilita ate mesmo pra fazer testes em objetos na memoria.
Mas a questão é se você usar o DAO vai perder boa parte das funcionalidades que o Hibernate ou JPA prove, caso nao use estara deixando seu sistema menos flexivel,pois todo o seu sistema estará FORTEMENTE ACOPLADO a infraestrutura, neste caso o Mecanismo de ORM, pois vc vai espalhar todo o acesso ao EntityManagem pelo seu codigo.
Mas fica a seu criterio, melhor mesmo seria analisa com calma, pois um projeto nunca é pequeno, é apenas uma forma de melhor visualizar e analisar as melhores formas de resolver grandes problemas.