Melhor forma de utilizar Spring  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
serathiuk
JavaTeenager
[Avatar]

Membro desde: 01/08/2006 15:20:07
Mensagens: 159
Localização: Curitiba / PR
Offline

Olá. Quero uma opinião do povo do GUJ. Comecei a pouco tempo estudar Spring, mas me veio umas dúvidas. Estou estudando a partir da documentação e a partir de alguns exemplos espalhados por aí. Fiz um exemplo aqui bem básico. Um DAO de Usuário com básico para um CRUD(salvar, alterar, remover e listar). Criei uma interface UsuarioDAO e uma implementação dessa interface(UsuarioJpaDAO). Essa classe, a UsuarioJpaDAO recebe pelo construtor o EntityManager. Está funcionando perfeitamente tudo, mas minha dúvida é em relação ao BeanFactory e a arquitetura que estou utilizando. Atualmente para criar uma instância do meu UsuarioDAO eu faço o seguinte:


Aí ele cria uma instância do UsuarioJpaDAO numa boa, está funcionando perfeitamente. Mas o problema é. Acho que ficar espalhando a linha "BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");" por todo o código é tosco. Então pensei que posso criar uma Factory para ele e daí o código ficaria desta maneira por exemplo:

Porém. Aí me vem outro possível problema. Me falaram(não sei se a pessoa estava certa) que uma das vantagens em utilizar o Spring era me livrar do "DAOFactory". Mas eu pensei que nesse caso eu poderia ter uma DAOFactory e reduzir o código ainda mais e não seria uma vantagem "me livrar dele":

Daí o DAOFactory ficaria algo como:

Mas usando o Spring somente para isso, não vi uma vantagem tão clara em cima de utilizar somente DAOFactory em Spring. Acredito que a vantagem nesse caso seria em relação em ter o Spring fazendo o controle Transacional e outras coisas mais.
Mas então. Falando tudo isso quero perguntar. Vocês acham que a forma que eu estou trabalhando com o Spring no meu exemplo(utilizando uma DAOFactory) é a melhor forma de trabalhar com ele mesmo? Existem outras formas melhores de trabalhar com o Spring? Sei que isso que postei é o básico do básico, mas quero saber desde já como a maioria das pessoas trabalham com ele. Se alguém puder analisar meu exemplo e meu dizer se o caminho que estou seguindo é o mais correto eu agradeço.

Ricardo Serathiuk
Twitter: http://www.twitter.com/serathiuk/
Blog: http://www.serathiuk.com/
[WWW]
bobsiqueira
JavaBaby

Membro desde: 02/06/2006 16:24:15
Mensagens: 82
Offline

estude sobre a injecao de dependecia do Spring... com certeza vai facilitar usa vida.. e nao tera que fazer esse esquema que voce esta fazendo para criar referencias.. eh so anotar e pronto. voce tera uma instancia para seu objeto..
thiagoks
Thread.start()

Membro desde: 14/02/2008 20:41:25
Mensagens: 38
Offline

É verdade, o esquema é usar o container do Spring pra ele fazer as injeções.



Aí vc usa o Spring para injetar o seu DAO no Service. Essa injeção pode ser feita através de xml ou annotations, fica a sua escolha.

Dessa maneira vc deve ficar com a sua aplicação dependendo do contexto do Spring em somente um lugar (Onde vc estiver fazendo o bootstraping).
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team