java - 如何在 Java 程序中通过 java.net.URL 类监控打开的 URL?

标签 java class url overriding default

我正在处理一个大型(很多类)java 项目,我有它的源代码,但大多数类都是通过 ClassLoaders 动态创建或下载的。 无论如何,我希望能够“覆盖”java.net.URL 类,这样我就可以追踪打开 url 的调用。我不能使用嗅探器,因为内容是 SSL 加密的。 我试图扩展 java.net.URL 但它没有用,因为它是最后一个类。 我还打开了 java.net.URL 的源代码并对其进行了修改并成功构建了它,现在如何使默认的 java 类加载器加载我修改后的 java.net.URL 副本而不是原始副本? 欢迎任何建议!提前致谢。

最佳答案

一种选择是使用 AspectJ 并将您的扩展代码编织到 URL 类中而不是扩展它。这样您就不必修改任何原始资源,您仍然可以“扩展” final类。缺点当然是,您向项目添加了另一个依赖项。

如果您还没有使用过 AOP,您可以在我的博客上找到对 AOP 的简短介绍:http://whatiscomingtomyhead.wordpress.com/2010/02/06/aspect-oriented-programming-an-introduction/

关于java - 如何在 Java 程序中通过 java.net.URL 类监控打开的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208747/

相关文章:

java - 访问静态类字段的更好方法

java - 从 Yang 模型生成 xml/json

ios - 如何在 Swift 中获取类的方法

c++ - 为什么我们可以返回对类成员变量的引用

javascript - 当用户下载文件时在另一台服务器上重命名文件

android - PanoramaGL 查看器位图的 URL

java - Java-无法调用编译错误方法

java - 如何查找任意网页/HTML页面对应的JSP文件?

php - Smarty 删除最后一个字符后的所有内容

Python,如何在函数之外使用函数的一部分