使用 Hibernate 和 Spring,我的应用程序需要有机会在每次数据库更新的开始和结束时操作连接。我们的第一个猜测是覆盖事务管理器,但这似乎会因间歇性的“找到预绑定 JDBC 连接!”而产生一些副作用。错误到其他几个更难描述的症状。
获得这种机会的最佳/最简单方法是什么。我看到有人建议覆盖数据源然后包装连接,但这真的是最好的主意吗?包装连接似乎很危险,尤其是因为 Websphere 有它自己的版本(WSconnection)。
想法?
当 a 完成时,连接的操作是最容易DataSource.getConnection
完成的,这样你就可以肯定地知道某些事情将会发生。因此,您可以简单地创建一个 DataSourceProxy/-Wrapper(给它一个名称)来执行此操作。您必须注意一件事,那就是,可能在连接关闭时撤消操作(如果需要的话)。
您可以使用一些 AOP 来执行代码,而不是创建代理(就像在这个答案中一样。