Sempre vejo bastante tutorial na web integrando Java + Flex + Hibernate + BlazeDS + Spring, este ultimo fazendo injeção de dependências. Entendo superficialmente o conceito e beneficios de injeção de dependências, mas estou aqui com o meu colega debatendo: precisamos mesmo adotar Spring e injeção de dependências em nosso projeto ? Porque 100% dos tutoriais citam Spring quando se trata de Java + Flex ? Ja fiz alguns testes integrando os dois instanciando normalmente minhas classas na camada Services, e tudo funcionou direitinho. O que perco mais pra frente se continuar trabalhando dessa forma ?
Não é obrigatório também passei por isso quando comecei porém recentemente tive um problema porque precisa trocar a session factory em runtime e o Spring me complicou um pouco já que ele gerenciava tudo do hibernate.
Retirei o Spring da minha arquitetura se quiser, posso te passar um exemplo.
Pois é, eu tambem ja utilizei bastante coisa sem usar o spring, mas como eu vi todo mundo falando no spring, comecei a ter duvidas se estava fazendo as coisas da maneira correta.
A duvida é o que eu ganho e o que eu perco em não utilizar o Spring.
Eu usei porque tava já junto na arquitetura do tutorial que estava seguindo do Flex.Não perdia nada só fui prejudicado no erro que citei acima mas é um caso isolado acredito.Na grande maioria você não será prejudicado.
Outra coisa é que com o Spring tinha Interface -> Repository, Service -> ServiceImpl, era bem abstraido todo novo método tinha que modificar nos 4 arquivos.Agora só com o Hibernate faço só um DAO para facilitar (não se é o mais correto, mas tem ajudado na produtividade)
O Spring ajudava no gerenciamento de transações não precisava me preocupar em pegar sessão, da flush, commit, rollback, …
[quote=RafaelViana]Eu usei porque tava já junto na arquitetura do tutorial que estava seguindo do Flex.Não perdia nada só fui prejudicado no erro que citei acima mas é um caso isolado acredito.Na grande maioria você não será prejudicado.
Outra coisa é que com o Spring tinha Interface -> Repository, Service -> ServiceImpl, era bem abstraido todo novo método tinha que modificar nos 4 arquivos.Agora só com o Hibernate faço só um DAO para facilitar (não se é o mais correto, mas tem ajudado na produtividade)
O Spring ajudava no gerenciamento de transações não precisava me preocupar em pegar sessão, da flush, commit, rollback, …
Tem seus prós.[/quote]
Entao esta tudo certo, pois usando o hibernate, e criando um DaoFactory, tambem ganha-se essa abstração sobre commit, rollback, flush. Acho que o uso do spring entao so se justifica em projetos grandes, pelo que entendi.
Também passei por esse problema e aproveitando a experiência de vocês com essa situação, gostaria de saber como vocês fizeram para integrar com o hibernate. Digo isso pois tive problema com a sessão, que é fechada na hora que os dados são retornados a View. Já tinha lido que o Spring contorna esse problemas, mas não tem alternativa para usar sem o spring o hibernate de forma satisfatória?
Eu fiz um esqueminha bem interessante de Session no Hibernate, lendo e fazendo os exemplos de uma apostila da Caelum, se nao me engano a fj-28, que ensina a trabalhar com Hibernate + Vraptor.
O exemplo que eles deram de como trabalhar com o Hibernate, construir um Dao Factory gerenciando as sessoes do Hibernate, foi perfeito. Eu apenas tirei toda a parte do Vraptor, pq nesse momento não há necessidade de um framework MVC para integrar com o Flex.
Basta vc ir construindo sua aplicação de “baixo para cima”, criando suas entidades com annotations, depois o DAO, o DaoFactory, e por fim uma camada Services contendo a interface que será acionada pela aplicação feita em Flex.
Na verdade fica bem simples e enxuto, só nao sei dizer se fica bem abstraido e se está 100% dentro do conceito de OO.
[quote=diegocharles] Eu fiz um esqueminha bem interessante de Session no Hibernate, lendo e fazendo os exemplos de uma apostila da Caelum, se nao me engano a fj-28, que ensina a trabalhar com Hibernate + Vraptor.
O exemplo que eles deram de como trabalhar com o Hibernate, construir um Dao Factory gerenciando as sessoes do Hibernate, foi perfeito. Eu apenas tirei toda a parte do Vraptor, pq nesse momento não há necessidade de um framework MVC para integrar com o Flex.
Basta vc ir construindo sua aplicação de “baixo para cima”, criando suas entidades com annotations, depois o DAO, o DaoFactory, e por fim uma camada Services contendo a interface que será acionada pela aplicação feita em Flex.
Na verdade fica bem simples e enxuto, só nao sei dizer se fica bem abstraido e se está 100% dentro do conceito de OO.[/quote]
Já estou baixando, vou dar uma estudada. Valeu pela dica.