配置文件
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);
}
}
SpringBoot代理设置
最新推荐文章于 2025-04-30 11:00:47 发布
该配置文件设置了HTTP和HTTPS代理,地址均为3.3.3.3,端口分别为1111和1112。此外,定义了一个排除列表,包含1.1.1.1和2.2.2.2两个路径。在加载过滤地址后,通过Spring Boot的@ConfigurationProperties和CommandLineRunner接口,程序设置了系统代理,将非代理主机设为配置的排除路径和localhost。
4868

被折叠的 条评论
为什么被折叠?



