Galera, estou com uma grande dúvida e preciso da opnião de vocês. É o seguinte, estou aproveitando um trabalho da faculdade para aplicar struts 2. Então esses dias estava fazendo um tutorial que mostra a inetgração de strtus 2 + spring 2 + hibernate, porém por ser apenas um exemplo simples a arquitetura do sistema está muito falha.
Então gostaria de saber de vocês como deve ser a arquitetura de uma aplicação utilizando essas tecnologias:
Struts 2: MVC
Spring 2: controle de transações e injeção de dependencia
Hibernate: persistencia
Alguem sabe?
Na empresa o qual trabalho usamos struts 1 e hibernate com o seguinte fluxo:
UI -> UsuarioAction -> fachada -> CadastroUsuario-> RepositorioUsuario ->banco
ainda existem: UsuarioBO e UsuarioForm.
onde:
1 - Repositorio: é um singleton que conversa direto com o banco de dados (inserir, alterar, consultar…).
2 - Cadastro: é um singleton que contem uma referencia ao repositorio(IRepositorioUsuario) correspondente e onde são implementadas as validações de regras de negócio.
3 - Fachada: é um singleton que contem uma referencia a cada classe Cadastro e apenas chama o método do cadastro direto (acho que se chama delegate).
4 - UsuarioBO: basicamente a representação dos campos da entidade, são usados para serem mapeados pelo hibernate e portanto, persistidos.
Bem, não tenho experiencia com padrões de projeto mas to querendo aprender algo a respeito com esse trabalho, por isso estou querendo utilizar todas essas tecnologias, portanto…não me digam pra usar algo mais simples…
conto com a ajuda de vocês pessoal.