Qual camada vocês costumam usar para separar o ManagedBean do DAO? Para não fazer chamadas do ManagedBean diretamente ao DAO.
Qual camada vocês costumam usar para separar o ManagedBean do DAO?
4 Respostas
Camada de controle, DAO manda uma String e o controlador filtra e manda pro ManagedBean.
Eu assumo que o ManagedBean do Jsf faz o papel de controler(MVC), e dentro dos manegedbean utilizo as chamadas para o Model (Exempo: BO class), e lá no model faço as chamadas para os DAOS
O controller em uma aplicação JSF é o Faces Servlet que temos que mapeiar no web.xml.
O mangedBean seria parte do modelo.
Eu acesso meus daos nos managedBeans pela interface que eles implementam, sendo
que a implementação é injetada pelo Spring.
Eu declaro meu managedBeans pelas anotações do Spring, não os declaro no faces-config.
Isto é necessário para usar de dao’s que citei acima.
O controller em uma aplicação JSF é o Faces Servlet que temos que mapeiar no web.xml.
O mangedBean seria parte do modelo.Eu acesso meus daos nos managedBeans pela interface que eles implementam, sendo
que a implementação é injetada pelo Spring.Eu declaro meu managedBeans pelas anotações do Spring, não os declaro no faces-config.
Isto é necessário para usar de dao’s que citei acima.
Bom ñ fui claro, vamos lá… eu ñ utilizo os daos diretamente no ManagedBean pq tal classe é muito próximo dos componentes de View que acabam sujando o código com funções especificas da redenrinzação de tela. Como trabalho com projetos imensos e preciso ter uma manutenção rapida, eu faço de tudo para deixar o código simples, fácil e sem dependências que ñ fazem parte do escopo, para contornar a sujeira que fica no ManageBean eu sempre crio classes no estilo BO(Bussines Object), parecido com façaide, para manter a lógica de CRUD e regra de negocio em um lugar só (nas classes BO), sem ter nenhuma dependência com as classes do JSF, com isso o código de negocio fica + limpo e se precisar mudar ou criar varias implementações fica mais facil alem de que se precisar mexer em algo da tela não vai afetar a minha regra de negocio, sem contar q a regra do negocio fica disponível para outros tipos de projetos sem ser jsf e tb os testes de unidade ficam mais simples de entender assim como a aplicação toda. Eu ñ uso Daos diretamento nos ManagedBeans justamente para manter a facil manutenção no codigo, no lugar eu injeto as classes BO( utilizando o Spring que tem anotação @Service) no ManagedBean(@Component), e o BO recebe por inversão de controle os daos(@Repository), assim minha logica fica centralizadas nos BOs e não no ManagedBean q tem dependencia do jsf ou outras coisas da tela… cada caso é um caso, eu já usei e adoto a abordagem do Daniel quando o software é pequeno sem perperctiva de crescimento, ao quando preciso de agilidade… segue minha opiniao