1 概述
Http
请求在服务端开发中必不可少,本文使用RestTemplate
做门面,HttpClient
做实现,演示基础的Http
请求例子。
2 源码分析
2.1 添加pom.xml
依赖
RestTemplate
在Spring-Web
模块中内置,SpringBoot
自动引入
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.5</version>
</dependency>
<!-- 如果不配异步(AsyncRestTemplate),则不需要这个依赖 -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.5.Final</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
2.2 配置文件application.yml
(可选)
# yml配置的优先级高于java配置;如果yml配置和java配置同时存在,则yml配置会覆盖java配置
####restTemplate的yml配置开始####
---
spring:
restTemplate:
maxTotalConnect: 1000 #连接池的最大连接数,0代表不限;如果取0,需要考虑连接泄露导致系统崩溃的后果
maxConnectPerRoute: 200
connectTimeout: 3000
readTimeout: 5000
charset: UTF-8
####restTemplate的 yml配置开始####
2.3 编写RestTemplate
配置(必备)
// 必备
@Configuration
@ConfigurationProperties(prefix = "spring.restTemplate")
@ConditionalOnClass(value = {
RestTemplate.class, CloseableHttpClient.class})
public class RestTemplateConfig {
// java配置的优先级低于yml配置;如果yml配置不存在,会采用java配置
// ####restTemplate的 java配置开始####
private int maxTotalConnection = 500;