Spring MVC - Injeção de Conexão

3 respostas
guilherme.dio

Ola,

estou me aprofundando no Spring MVC, e surgiu algo que não sei como fazer pelo Spring, que é injetar a conexão com banco de dados, para uso nos controllers e actions.

Usando Servlet puro, eu simplesmente abria a conexão(Factory) antes de instanciar a action passando-a adiante, pelo construtor…e ao fim a conexão era fechada, permitindo a reu-tilização nos processos realizados na action.

Agora pelo Spring, não sei como fazer este pre handle, criando a Connection, talvez via interceptor …mas como ?

Obrigado.

3 Respostas

lele_vader

Você está usando o que ?
O Spring tem suporte a injetar um entity manager, se estiver usando jpa ou um datasource se for jdbc mesmo.

Você tem que configurar o appContext e na classe usar a anotação @Repository

No site do spring com jdbc
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/jdbc.html

Com framework o/r
http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/orm.html

guilherme.dio

Estou conectando via JDBC, atualmente estou usando ConnectionFactory para gerar uma conexão.

lele_vader

Então no seu appContext você vê lá no link que eu passei.
Você vai criar um bean que referencia o seu datasource.
Dai na sua classe você cria um atributo da classe datasource e coloca a anotação @Repository que ele vai injetar.

Um exemplo de configuração vai a seguir.

<jee:jndi-lookup id=“dataSource” jndi-name=“jdbc/dsApplication” resource-ref=“true” lookup-on-startup=“true” />

Dai no caso eu pego a configuração do banco apontando para um jndi.

Você vê lá no link que eu passei para setar as opções de banco,usuário e senha ali.

Daí na sua classe você usa a anotação @Repository para dizer que é uma classe que se comunica com o banco e cria um atributo da classe datasource com a anotação @Autowired para ser injetado e usa esse objeto para chamar os métodos como você faria com um preparedStatement e tal.

Depois vê também sobre o rowMapper que ajuda a mapear os resultados de uma consulta.

Criado 9 de maio de 2012
Ultima resposta 9 de mai. de 2012
Respostas 3
Participantes 2