0

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

  1. 我们打开一个连接(java.sql.Connection)并在所有数据库操作完成后关闭连接。我在这里想要的是在每次调用 Connection.close() 方法时调用一个自定义方法。我无法为连接创建自定义分类,因为在现有项目中对此的代码更改将非常巨大。

有没有办法挂钩关闭方法。是否可以在 Java 中挂钩方法?

任何帮助表示赞赏。!谢谢。

4

1 回答 1

0

有几种方法:

  • 在调用时使用java.lang.reflect.Proxy并让 InvocationHandler 执行其他操作close()
  • 编写一个扩展的包装器Connection(本质上与 Pr​​oxy 相同,只是您必须自己实现所有方法并将它们链接到包含的 Connection)
  • 我从未使用过它,但我相信 AspectJ 允许您使用切入点添加行为
于 2012-10-22T14:01:46.163 回答