【问题标题】:Connection get/return listener?连接获取/返回监听器?
【发布时间】:2013-09-03 21:58:24
【问题描述】:
使用 Hibernate 和 Spring,我的应用需要有机会在每次数据库更新的开始和结束时操作连接。我们的第一个猜测是覆盖事务管理器,但这似乎会因间歇性的“找到预绑定 JDBC 连接!”而产生一些副作用。错误到其他一些更难描述的症状。
获得这种机会的最佳/最简单的方法是什么。我看到有人建议覆盖数据源然后包装连接,但这真的是最好的主意吗?包装连接似乎很危险,尤其是因为 Websphere 有它自己的版本 (WSconnection)。
想法?
【问题讨论】:
标签:
spring
hibernate
jdbc
【解决方案1】:
当DataSource.getConnection 完成时,连接操作最容易完成,这样您就可以确定某些事情会发生。因此,您可以简单地创建一个 DataSourceProxy/-Wrapper(给它一个名称)来执行此操作。您必须注意一件事,即可能在关闭连接时撤消操作(如果需要的话)。
您可以使用一些 AOP 来执行代码,而不是创建代理(例如 this answer。