钩子JDBC Connection.Close()方法

时间:2012-10-22 07:58:39

标签: jdbc connection hook

我需要挂钩激发类的方法并进行某种日志记录。这些类在应用程序中编写并作为Jars放置。我的场景中的典型示例如下。

  1. 我们打开一个连接(java.sql.Connection)并在完成所有数据库操作后关闭连接。我想要的是在每次调用Connection.close()方法时调用自定义方法。我无法为连接创建自定义类,因为在这个令人兴奋的项目中,代码更改将非常巨大。
  2. 有没有办法钩住Close方法。是否可以在Java中挂钩方法?

    感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

有几种方法:

  • 使用java.lang.reflect.Proxy并让InvocationHandler在调用close()时执行其他操作
  • 编写一个扩展Connection的包装器(基本上与Proxy相同,除非您必须自己实现所有方法并将它们链接到包含的连接)
  • 我从未使用它,但我相信AspectJ允许您使用pointcuts
  • 添加行为