Spring boot 使用JVM参数为RestTemplate配置代理

Spring boot 使用JVM参数为RestTemplate配置代理,spring-boot,proxy,hoverfly,Spring Boot,Proxy,Hoverfly,我正在集成hoverfly作为spring boot应用程序的代理服务器。 这个应用程序调用其他restapi,我希望捕获请求和响应,然后在模拟模式下通过hoverfly进行进一步调用 我能够实现通过以下代码和它的工作良好 Proxy proxy= new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8500)); SimpleClientHttpRequestFactory requestFactory = new Sim

我正在集成hoverfly作为spring boot应用程序的代理服务器。 这个应用程序调用其他restapi,我希望捕获请求和响应,然后在模拟模式下通过hoverfly进行进一步调用

我能够实现通过以下代码和它的工作良好

Proxy proxy= new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8500));
SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
requestFactory.setProxy(proxy);
restTemplate.setRequestFactory(requestFactory);
但我无法在运行时使用从命令行传递的以下JVM参数运行它: -Dhttp.proxyHos127.0.0.1-Dhttp.proxyPort=8500-Dhttps.proxyHost=127.0.0.1-Dhttps.proxyPort=8500-Dhttps.proxySet=true-Dhttp.proxySet=true

当我使用这些参数时,不会设置任何代理主机,所有请求都会发送到实际的服务器

正如我在许多论坛上读到的,通过JVM参数可以进行代理配置。所以,我尝试在不更改任何代码的情况下使用代理服务器


如果可能,请给出建议。

您正在从命令行传递这些参数。但是,您如何在代码中读取它?这段代码在哪里?@pvpkiran感谢您的快速回复。实际上,这是我关心的问题,是否可以仅从命令行或yml文件设置代理服务器?当然可以。使用
@Value
@ConfigurationProperties
@pvpkiran,就像我在描述中提到的那样,我可以通过在requestFactory中设置代理主机和端口的代码来实现。但我想知道的是,在requestFactory中设置主机和端口是必须的还是仅仅从命令行传递它们就足够了。因为很多论坛都告诉我们,这只可能通过JVM参数实现。请建议。通过从命令行传递它们不会做任何事情,如果从代码中您不读取它们并将其设置为requestFactory。另一个选项是,您必须为代理主机和密码设置系统环境变量。然后,您不必向程序传递任何信息,也不需要在代码中执行任何操作。