SpringBoot代理设置

配置文件
my:
  proxy:
    http:
      addr: 3.3.3.3
      port: 1111
    https:
      addr: 3.3.3.3
      port: 1112
  exclude:
    paths:
      - 1.1.1.1
      - 2.2.2.2

加载过滤地址
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import java.util.List;

@Data
@Configuration
@ConfigurationProperties(prefix = "my.proxy.exclude")
public class ProxyConfig {
   List<String> paths;
}

设置代理
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;
import pers.zzq.manage.config.ProxyConfig;

import java.util.List;

@Component
@Slf4j
@EnableConfigurationProperties(ProxyConfig.class)
public class ProxyInteceptorRunner implements CommandLineRunner {

   @Autowired
   ProxyConfig proxyConfig;
   @Value("${my.proxy.http.addr}")
   String httpAddr;
   @Value("${my.proxy.http.port}")
   String httpPort;
   @Value("${my.proxy.https.addr}")
   String httpsAddr;
   @Value("${my.proxy.https.port}")
   String httpsPort;

   @Override
   public void run(String... args) {
      System.setProperty("https.proxyHost", httpsAddr);
      System.setProperty("https.proxyPort", httpsPort);
      System.setProperty("http.proxyHost", httpAddr);
      System.setProperty("http.proxyPort", httpPort);
      StringBuilder sb = new StringBuilder();
      List<String> paths = proxyConfig.getPaths();
      for (String path : paths) {
         sb.append(path).append("|");
      }
      String s = sb.toString() + "localhost";
      System.setProperty("http.nonProxyHosts", s);
      System.setProperty("http.nonProxyHosts", s);
   }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值