Bom é o seguinte, estou estudando o spring e estou tentando fazer uma coisa que pelo que já achei na net nada me “clareou”…
Bom, estou querendo usar minha estrutura que já está pronta(DAO) com o spring. Mas pelo que vi, para que eu possa usar o spring com meus DAO’s tenho que usar a estrutura DAO feita no spring, por exemplo minhas classes de implementação DAO herdando de JdbcDaoSupport(spring).
Mas eu queria deixar o Spring o menos “intrusivo” possível. Tipo assim, eu teria minha configuração de dataSouce no xml, com controle de transações e na minha classe de DB eu pegaria a conexão do Spring através do dataSource configurado no mesmo.
Eh soh tratar o seu DAO como um bean qualquer, e injetar o DataSource no construtor dele… sem misterio 8)
Lucas_Teixeira
Eu particularmente prefiro manter a injeção via setter usano o autowire byName dele… Faz com que o código do XML fique muito mais limpo.
cv1
O problema de fazer isso eh errar no XML e esquecer de passar o DS pro setter… boom
Lucas_Teixeira
autowire!!!
mesma propriedade, mesmo bean… E a super inteligência semi-artificial do Spring (as vezes creio que ele pensa melhor que eu).
(;
cv1
Hmm… verdade… e se vc esquecer de declarar o DS no XML inteiro, vc leva exception… eu viajei aqui e achei que ele falhava silenciosamente, setando null
paulohbmetal
Certo, mas meu dataSouce fica numa classe que implementa uma interface DataBase que criei. Daí meus DAO’s executam o SQL nesta classe DataBase.
Eu criei uma classe de contexo e a partir desta classe eu obtenho o dataSouce que está configurado no xml do Spring. Bom até aí é lindo… Na minha classe de DataBase eu obtenho a instancia de DataSource e daí obtenho minha conexao. Mas o problema é que a conexao está autoCommit(true) automática.
O Spring não teria que controlar isso já? Pois eu obtive a conexao através do dataSource do Spring.
A Paz!!
Lucas_Teixeira
Yeah! Agora também tem que ser uma ‘mulinha’ pra desenvolver um sistema de conexão inteiro usando apenas UM datasource e esquecer de declarar ele né?
Daí quero controlar minhas transações nos Façades.
A Paz!!
paulohbmetal
É… Ele não está controlando a transação… Tipo assim, se eu obtive a connection do dataSource do Spring nesta minha configuração aí em cima, terei eu que rpeocupar com em setar a propriedade setAutoCommit(false)?