Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用带有Guice 3的AOP在第三方代码中将`new Socket()`重新定义为`new Bar()`?_Java_Aop_Guice - Fatal编程技术网

Java 使用带有Guice 3的AOP在第三方代码中将`new Socket()`重新定义为`new Bar()`?

Java 使用带有Guice 3的AOP在第三方代码中将`new Socket()`重新定义为`new Bar()`?,java,aop,guice,Java,Aop,Guice,我遇到了一个新的guified应用程序的情况,该应用程序使用了很久很久以前编写的供应商提供的网络通信库,现在我需要能够通过ssh提供的SOCKS5代理,并且它在独立应用程序中与系统属性“-DsocksProxyHost=127.0.0.1”配合良好 不幸的是,这需要在影响其他事情的情况下运行,因此我想知道是否可以使用潜伏在Guice 3中的AOP捕获对特定类和/或所述库中所有类中的new Socket的调用,并将它们转发给我自己的类,然后创建代理实例 不幸的是,我不知道AOP实际上可以做什么,以

我遇到了一个新的guified应用程序的情况,该应用程序使用了很久很久以前编写的供应商提供的网络通信库,现在我需要能够通过ssh提供的SOCKS5代理,并且它在独立应用程序中与系统属性“-DsocksProxyHost=127.0.0.1”配合良好

不幸的是,这需要在影响其他事情的情况下运行,因此我想知道是否可以使用潜伏在Guice 3中的AOP捕获对特定类和/或所述库中所有类中的
new Socket
的调用,并将它们转发给我自己的类,然后创建代理实例


不幸的是,我不知道AOP实际上可以做什么,以及这是否是一个好主意。我应该如何实现这一点?

Guice中的AOP只适用于Guice为您创建的对象(因此,在您的代码或库中没有为其编写
new X()
)。它还只能拦截方法调用(而不是构造函数调用),主要用于在方法调用之前和/或之后执行操作,而不是尝试完全更改方法调用。

Ok。你能推荐另一个工具集让我做我需要做的事情吗?@Thorbjørn Ravn Andersen:虽然可能存在一些东西,但我不知道有什么东西可以让你将构造函数调用更改为完全不同的东西。据我所知,构造函数调用是Java中最不可更改的事情之一。