Dúvida de arquitetura - Struts 2 + Hibernate 3

7 respostas
ffontouras

Caros, estou portanto/reescrevendo meu sistema que hoje é construído em PHP para JavaEE (Struts 2 + Hibernate). E estou maravilhado com as novas possibilidades!

Sou novo na programação Java para WEB, porem me viro em OO :slight_smile:

Minha dúvida é como abstrair mais a camada de persistência no qual eu utilizo o Hibernate 3.

Na action Struts tenho o seguinte código funcionando (com um DAO pobrinhu! :)):

public class UsuariosAction extends AbstractNucleoAction {
	private static final long serialVersionUID = 1L;

	private Usuario usuario;
	private List<Usuario> usuarios;

	public String listar() {
		Session session = HibernateUtil.getSessionFactory().openSession();

		UsuarioDAO usuarioDAO = new UsuarioDAO(session);
		usuarios = usuarioDAO.list();

		session.close();

		return SUCCESS;
	}
        
        //...outros actions
}

Apesar de isto já estar funcionando algumas coisas me incomodam:

1 - Separação entre camadas action e persistência são fracas
2 - Necessidade de abrir sessions hibernate na camanda de ação (action). Isso me lembra mysql_connection do PHP :twisted: dentro do próprio PHP!!! Aff

Já vi uns tutoriais até do próprio Urubatan e o clássico do Apache Struts 2 - Struts 2 + Spring 2 + JPA + Ajax (http://struts.apache.org/2.1.8.1/docs/struts-2-spring-2-jpa-ajax.html)

Apesar de seguir o tutorial não consegui fazer funcionar o Spring 2, por questões de libs (já estou me vidando com o Maven2) :slight_smile:

Mas o que senti é que com o Spring gerenciando as transações e injetando dependências (classes services) os arquivos de configuração se multiplicaram e eu me perdi! :roll:
Apesar de se atrapalhar um pouco achei a implementação e principalmente a abstração.

Na minha visão:

Ponto positivo: Consegui a “separação” entre a camada de actions e persistência.
Ponto negativo: Muitos arquivos de configuração (como sou novo na área me acostumei mal com annotations). Na minha implementação atual uso apenas a configuração do hibernate.

Há alguma alternativa mais viável no sentido de “facilidade” entre o uso o Spring2 vs DAO na raça (genérico) abrindo session hibernate na camada action?

Desculpe se utilizei alguma “nomenclatura” errada, e por favor, me corrijam!

Abraços a todos!

7 Respostas

D

Eu uso assim e é muito facil de manter e implementar:

ffontouras

Legal Daniel!!!

Muito obrigado!

D

Se vc quiser um projeto blank completo com todas as libs e configurações prontas de transação, IOC, ORM, HBM que eu fiz nessa arquitetura, pra vc estudar
e só importar no seu eclipse… manda ai seu email que eu te envio o zip, tem uns 10 MB por causa das libs…sources etc… o ajax e JQuery…

Abs.

ffontouras

Oi Daniel…já te passei meu e-mail por MP…

Valeuzzz cara!!!

paulo1911

Olá daniel,

eu estava buscando na net justamente uma forma de montar uma arquitetura assim, não tenho muita experiencia em montar arquiteturas, por isso tenho estudado um pouco sobre.

Gostaria que vc se possivel tb me enviasse um project blanck com essa sua arquitetura pra eu estudar e praticar tb.

meu email: [email removido]

Obrigado e abraços

D

Send… abs

D

Se possível envia pra mim também o projeto blank…

email [email removido]

obg

Criado 19 de maio de 2010
Ultima resposta 11 de dez. de 2010
Respostas 7
Participantes 4