Закрывает ли Spring JdbcTemplate соединение при возникновении исключения? - PullRequest
9 голосов
/ 23 февраля 2011

Когда Spring перехватывает SQLException, закрывает ли он подготовленный оператор, набор результатов и / или соединение, прежде чем выдать свое собственное исключение DataAccessException (runtime)?

У меня есть разработчик, который хочет создать аспект AOPчтобы перехватить эти исключения и зарегистрировать и / или закрыть соединение.

@AfterThrowing(pointcut="dataAccessOperation()", throwing="exception")
public void doRecoveryActions(JoinPoint thisJoinPoint, DataAccessException exception) {
     // log and/or close connection
}

Ответы [ 2 ]

20 голосов
/ 23 февраля 2011

Да.

В этом весь смысл JdbcTemplate - он обрабатывает все виды стандартных действий, включая освобождение всех ресурсов.Смотри 12.Доступ к данным с JDBC .

0 голосов
/ 24 февраля 2011

Я думаю, ваш разработчик должен взглянуть на возможности управления транзакциями пружин .Вы можете использовать AOP для указания ведения журнала, поведения отката и даже retry или других действий по обработке исключений для полной декларативной реакции.

...