Проект, над которым я работаю, использует прямой доступ к данным JDBC во всей его славе и не использует никаких транзакций. Я чувствую, что использование транзакций и упрощение способов написания методов доступа к данным важно, особенно с некоторыми изменениями, внесенными в настоящее время. Проект существует довольно давно и не подходит для структуры ORM. Он также использует много синглтонов (тьфу) и распутывает его, чтобы он мог использовать инъекцию зависимостей, и это было бы неплохой работой, и я не думаю, что могу убедить кого-то в том, что мы должны это сделать сейчас.Как сделать простые транзакции Spring JDBC за пределами контейнера IoC?
Мне нравится интерфейс Spring JDBC, в частности через его SimpleJdbcTemplate
. Мой вопрос заключается в том, как включить некоторые простые (для каждого запроса на сервлет) для этого, без необходимости устанавливать что-либо программно в каждом способе доступа к данным или использовать контейнер Spring IoC или AOP. Я играл со своей собственной архитектурой, которая заканчивается интерфейсом, подобным SimpleJdbcTemplate
, и может использовать одно-локальное подключение и транзакцию, когда обращения к ней выполняются в контексте запроса (через ServletRequestListener
с ThreadLocal
). Кажется, что он работает хорошо, но я думаю, что использование хорошей внешней библиотеки, такой как Spring JDBC, было бы предпочтительнее.
У кого-нибудь есть опыт?
Это не работает так, как я думал, так как это потребует программной упаковки вызовов с использованием TransactionTemplate на более высоком уровне приложения, а не только при каждом вызове JdbcTemplate, если это возможно, использовать локальную транзакцию запроса. Однако он должен работать нормально. – ColinD