El caso es que si tienes problemas con la gestión de transacciones delegadas a las anotaciones de Spring es probable que quieras hacer un test unitario para ver si las conexiones se cierran o no.
Como configurar el test de groovy para que ejecute la política de transacciones que quieras?
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = ["classpath:/beans/misBeans1.xml","classpath:/beans/misBeans2.xml"]) @TransactionConfiguration(transactionManager="transactionManager", defaultRollback=false) class SpringConnectionsTest{ static final Logger log=Logger.getLogger(SpringConnectionsTest.class) @Autowired ApplicationContext context;
@Before void setTup(){ .... }
@Test void testSomething(){ ... }
- Así que basicamente se trata de quitar la herencia al GroovyTestCase que tendría por defecto al ser un test de groovy.
- Indicar los ficheros de beans que se quieren cargar.
- Inyectar el bean (en el ejemplo cogemos el contexto podría ser cualquier bean) con @Autowired.
log4j.logger.org.springframework.transaction=DEBUGCómo podemos ver cuándo se pilla una conexion nueva o se reutiliza una?
log4j.logger.org.springframework.jdbc.datasource.DataSourceUtils=DEBUGMi método no lo engancha, ¿qué pasa?
Podrían ser 1000 cosas, pero recuerda que el transactionManager solo funciona con métodos públicos.