2010-02-12 9 views
6

Por lo que yo entiendo, DataSourceTransactionManager vincula una conexión JDBC del DataSource especificado al hilo actual, lo que permite una conexión unida por thread por DataSource. Si se trata de un conjunto de conexiones, tomará una de las conexiones disponibles.¿Cómo funciona exactamente JdbcTemplate con TransactionManager?

Después de esto, si uso JdbcTemplate dentro de una transacción, capturará una conexión enlazada por DataSourceTransactionManager. ¿Entiendo el mecanismo correctamente? ¿Hay algún requisito para hacer la definición de bean del administrador de transacciones (es decir, singleton)?

Respuesta

3

Ya describió cómo funciona. La lógica de sincronización de transacciones de Spring tiene la temible responsabilidad de mantener sincronizadas las transacciones entre JDBC, Hibernate, JPA, etc., y el resultado final es bastante fluido.

Los gerentes de transacciones deben ser singletons, sí. Una sola transacción es administrada por un solo administrador de transacciones, y si tiene varias de ellas por ahí, le espera un mundo de dolor.

+0

¡Gracias por la respuesta! –

+1

¿Cuánto dura la conexión adquirida con DataSource? –

0

El valor predeterminado es de 15 segundos para la duración de la conexión adquirida de DataSource. Y puede especificar el máximo tiempo de espera de conexión explícitamente en su propiedad de conexión.

Cuestiones relacionadas