第一步:引入springboot依赖
这个依赖如果是用springboot做web开发是必须要引入的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
第二步:在其他类上注入RestTemplate
@Autowired
private RestTemplate restTemplate;
第三步: 报错
直接启动的报错:

使用测试类的报错:

解决方案(1):
卸载jdk,转行
解决方案(2):
在启动类上添加一下神秘的代码:
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory){
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(180000);//单位为ms
factory.setConnectTimeout(5000);//单位为ms
return factory;
}
解决方案(3):
写一个配置类
之所以写个这个是因为,把所有的@bean需要注入的bean都写在启动类里面,太乱了
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(5000);//ms
factory.setConnectTimeout(15000);//ms
return factory;
}
}
本文介绍了在SpringBoot中使用RestTemplate时遇到的启动报错问题,以及两种解决方案:一是卸载JDK并更换其他版本,二是通过在启动类添加代码配置RestTemplate。更推荐的解决方案是创建一个配置类,将Bean注入和配置分开,以保持代码整洁。配置类中设置了连接和读取超时时间。
1704

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



