Como configurar o Spring?  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Olá pessoal!

Hoje eu encuquei que ia aprender a usar o Spring para integrar com o Hibernate. Bem, estou dando uma olhada em alguns livros (principalmente o Spring in Action, Second Edition), mas a configuração do Spring é meio vaga. Talvez seja porque eu já pulei direto para a integração com o hibernate. Enfim, já fiz algumas coisinhas, mas está dando um null pointer exception na hora de salvar um objeto no banco, me parece que ele não está entendendo minha configuração pois não é injetada a SessionFactory dentro do HibernateDaoSupport . Estou postando em anexo o meu projeto do NetBeans beleza? Precisa configurar a as libs para usar o Spring.

Quem pude me dar uma luz eu agradeço!

Abraços!

P.S. Desculpa a burrice, é que estou começando hehehehehe
 Nome do arquivo TestandoSpring.zip [Disk] Download
 Descrição
 Tamanho 23 Kbytes
 Baixado:  300 vez(es)

This message was edited 2 times. Last update was at 16/10/2007 16:57:45


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Não uso netbeans.

Que tal postar só o seu arquivo de configuração do Spring?

De qualquer forma, sua aplicação é web? Se sim, você adicionou os ServletListeners do Spring ao web.xml?

Former LIPE.
[ICQ]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Olá LIPE

Eis aqui o spring.xml




E minha classe de teste



Quanto a ser aplicação Web, ela irá ser hehehe. É que eu queria testar o funcionamento antes de partir para a web. É só uma aplicação de teste para eu aprender a tecnologia. Vc poderia então me falar o que eu devo fazer quando foir uma aplicação web ou não? Quais listener devo configurar no web.xml? Mais uma pergunta A configuração do spring precisa ser carregada sempre quando for utilizá-lo ou é apenas uma vez na carga da aplicação?

Muito obrigado!

This message was edited 1 time. Last update was at 17/10/2007 12:03:26


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

O mapeamento parece correto.

Perguntas:
1. A classe HibernateClienteDao extende HibernateDaoSupport?
2. Aparece o log da inicialização da session factory?

Quanto às suas perguntas:
1. o web.xml deve conter o seguinte:

2. Apenas uma vez.

Former LIPE.
[ICQ]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Olá de novo LIPE

Estende sim, dê uma olhada



Olha o log



Quanto as configurações do web.xml, eu tenho que fazer mesmo se não for usar o Spring MVC?

Valeu!

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Mais uma pergunta:

Os arquivos

conf/applicationContext.xml
conf/applicationContext-DAOs.xml
e conf/applicationContext-Services.xml

Eu devo criar ou já são parte do Spring?

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Eles são os arquivos de configuração de um projeto aqui. São equivalentes ao seu spring.xml.

Hm, tenho um palpite sobre porquê não funcionou. Normalmente declaramos um transaction manager, que é um interceptor aplicado aos métodos da classe que usa o DAO.

Então, no seu caso, falta fazer o seu DAO entender que deve abrir uma transação antes do método "salvar" ser executado e commita-la após terminar.

Se estiver utilizando Java 5 e annotations, basta seguir este tutorial:
http://www.springframework.org/docs/reference/transaction.html
Mas ao invés de aplicar o interceptor no Service, aplicará diretamente no DAO.

This message was edited 1 time. Last update was at 17/10/2007 13:35:22


Former LIPE.
[ICQ]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Olá LIPE.

Consegui resolver, segui seu padrão de arquivos de configuração e tinha um erro grotesco na minha classe de teste... Olha lá



Estava criando um HibernateClienteDao do nada, sem usar o que eu tinha obtido... hehehe

Quanto a transação vou ver isso agora.

Agora mais uma pergunta, fiz um servlet para testar aqui. Como faço para obter o bean configurado no Spring dentro do servlet? No meu teste eu carrego na mão e uso a configuração.

Valeu pela ajuda

This message was edited 1 time. Last update was at 17/10/2007 14:05:30


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

haha olha só.

Servlets? Você não vai MESMO usar servlets, né?

O ideal é integrar o Spring com seu WebFramework de preferência, configurando de forma que o Spring crie suas Actions/Commands/Services, automatizando a injeção de dependências.

Se for seguir este caminho, recomendo o DWR.

Former LIPE.
[ICQ]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Não, não vou usar servlets, só estou testando.

Deixa eu explicar o que está acontecendo para vc entender.

Tenho uma aplicação para desenvolver que terá que usar o Flex. Para facilitar minha vida na persistência eu vou usar o Hibernate, mas eu não quero ficar abrindo/fechando sessões do Hibernate. Queria deixar isso a cargo do Spring. Só vou usar o Spring única e exclusivamente para dar uma mão com o Hibernate, nada mais.

Por isso queria saber, como obter um bean que foi configurado entendeu?

Abraço!

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Bom, atualmente estou trabalhando com 2 projetos razoavelmente grandes utilizando Flex (com dataservices), Hibernate e Spring hehe

Para delegar ao Spring a função de criar os Delegates/Services/etc que o Flex chama, basta fazer o seguinte:
1. Adicionar o seguinte antes do fechamento da tag <services-config> do arquivo /WEB-INF/flex/services-config.xml

2. Adicionar o seguinte antes do fechamento da tag <service> do arquivo /WEB-INF/flex/remoting-config.xml

Sendo <source> o ID do bean configurado no seu spring.xml e o atributo "id" o source que será usado no RemoteObject do Flex.

3. E o código do SpringFactory:



Se você não vai comprar o servidor do Flex, pode usar o Granite (google), que faz as mesma coisa, mas sem o push de dados.

Mas, respondendo sua dúvida sobre Servlets, não sei como configurar para o Spring criá-los, de forma que injetasse as dependências.

This message was edited 1 time. Last update was at 17/10/2007 14:43:25


Former LIPE.
[ICQ]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Ola LIPE.

Obrigado pelas respostas.

Então, não usaremos o Flex Data Services, pois ainda estamos engatinhando na tecnologia, e infelizmente não temos verba para treinamento, é tudo aprendido na raça infelizmente.

O que eu precisava eu encontrei dentro da implementação da SpringFactory que você postou, eu não queria criar servlets e injetar dependências nos mesmos, queria simplesmente pegar um bean que foi criado. Eu quase cheguei no que vc postou, passei raspando

Agora a última pergunta, prometo

O Spring me garante o fechamento de sessão do hibernate né?

Abraço!

This message was edited 1 time. Last update was at 17/10/2007 15:44:58


Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
Filipe Sabella
GUJ Expert

Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline

Se você configurar o TransactionInterceptor direitinho, sim.

Quanto ao DataServices, não tem muito que aprender. Configurando o services-config.xml e remoting-config.xml, no flex basta fazer algo como:



Former LIPE.
[ICQ]
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Valeu pelas dicas LIPE!

Abraço!

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
b_m_a_
Thread.start()

Membro desde: 13/02/2011 17:52:37
Mensagens: 26
Offline

E ai caras tudo beleza.

Eu estou a desenvolver uma aplicacao web e to querendo usar o spring. Ja encontrei alguns tutoriais que explicam o que devo configurar para comecar, mas eu nao entendo por exemplo para que server o listener e o filtre.

Sera que podem explicar-me ou indicar um tutorial onde expliquem isso?

Obrigado.

Bma
[MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team