Pergunta

Até onde eu entendi, o DataSourCetransActionManager vincula uma conexão JDBC da fonte de dados especificada ao thread atual, permitindo uma conexão ligada a um encadeamento por fonte de dados. Se for um pool de conexões, será necessário uma das conexões disponíveis.

Depois disso, se eu usar o JDBCTemplate dentro de uma transação, ele capturará uma conexão BIMED pelo DataSourCetransactionManager. Eu entendo o mecanismo corretamente? Um requisito para fazer a definição de feijão do gerente de transações (ou seja, Singleton)?

Foi útil?

Solução

Você praticamente descreveu como funciona. A lógica de sincronização da transação da primavera tem a responsabilidade bastante assustadora de manter as transações sincronizadas em JDBC, Hibernate, JPA, etc., e o resultado final é bastante perfeito.

Gerentes de transação devo Seja singletons, sim. Qualquer transação é gerenciada por apenas um gerente de transações e, se você tem vários deles por aí, está em um mundo de dor.

Outras dicas

O valor padrão é de 15 segundos para a vida útil da conexão adquirida do DataSource. E você pode especificar o tempo limite do máximo de conexão explicitamente em sua propriedade de conexão.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top