`
kanpiaoxue
  • 浏览: 1781172 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

springboot RestTemplate整合

 
阅读更多

 

 

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

import com.google.common.primitives.Ints;

import java.util.Objects;

/**
 * RestTemplate配置类
 *
 * @ClassName: RestTemplateConfig
 * @author kanpiaoxue
 * @version 1.0
 * @CreateTime: 2019/10/08 09:42:39
 * @Description:
 */
@Configuration
public class RestTemplateConfig {
    private static final Logger LOGGER = LoggerFactory.getLogger(RestTemplateConfig.class);

    @Value("${csis.http.connectTimeout:15000}")
    private String connectTimeoutString;
    @Value("${csis.http.readTimeout:5000}")
    private String readTimeoutString;

    @Bean
    public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
        return new RestTemplate(factory);
    }

    @Bean
    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
        LOGGER.info("start to simpleClientHttpRequestFactory. readTimeoutString:{},connectTimeoutString:{}",
                readTimeoutString, connectTimeoutString);

        Objects.requireNonNull(readTimeoutString, "readTimeoutString is null");
        Objects.requireNonNull(connectTimeoutString, "connectTimeoutString is null");

        int connectTimeout = Ints.tryParse(connectTimeoutString);
        int readTimeout = Ints.tryParse(readTimeoutString);

        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setConnectTimeout(connectTimeout);
        factory.setReadTimeout(readTimeout);
        return factory;
    }

}

 

@Service
public class HelloService {
 
    @Autowired
    private RestTemplate restTemplate;
 
    public String get(Integer id){
        return restTemplate.getForObject("http://localhost:8080/hello?userId="+id,String.class);
    }
}

 

分享到:
评论

相关推荐

    SpringBoot2.2.1整合项目.zip

    HTTP通信则常常涉及到与外部服务的交互,SpringBoot的RestTemplate或者WebClient可以方便地发送HTTP请求。此外,自定义拦截器或者Filter可以实现请求和响应的拦截,进行统一的日志记录或权限验证。 最后,字符串...

    springboot zimg整合.zip

    SpringBoot Zimg整合详解 SpringBoot作为一款轻量级的Java框架,因其便捷的启动方式和微服务特性,被广泛应用于各种项目开发中。而Zimg是一款高性能的图片处理服务,能够提供动态缩放、裁剪、旋转等功能,极大地...

    SpringBootLearning_forezp.tar.gz

    SpringBoot非官方教程 | 第十六篇:用restTemplate消费服务 SpringBoot非官方教程 | 第十七篇:上传文件 任务调度 SpringBoot非官方教程 | 第十八篇: 定时任务(Scheduling Tasks) 表单相关 SpringBoot非官方...

    springboot整合eureka源代码,学习资料

    SpringBoot整合Eureka是构建微服务架构中的关键一环,Spring Boot简化了Spring应用程序的启动和配置,而Eureka则是Netflix开源的微服务组件,主要负责服务注册与发现。本学习资料聚焦于如何将这两者结合,以实现高效...

    springboot整合zookeeper项目源代码

    在SpringBoot整合Zookeeper的过程中,我们需要以下几个关键知识点: 1. **Spring Boot**:Spring Boot的核心特性是自动配置,它通过`@EnableAutoConfiguration`注解自动识别项目中的依赖并进行配置,极大地简化了...

    springboot整合springclound文档

    ### Spring Boot 整合 Spring Cloud 知识点详解 #### 一、服务治理:Spring Cloud Eureka **1. 搭建服务注册中心** - **添加依赖**:首先需要在项目的`pom.xml`文件中添加Spring Cloud Eureka Server 的依赖。 - ...

    springboot 整合 freemarker代码实例

    在启动类`FreemarkerApplication`中,我们使用`@SpringBootApplication`注解标记该类为Spring Boot应用的主类,并定义了一个`RestTemplate` bean,用于发起HTTP请求。`RestTemplate`的构造函数接收`OkHttp3...

    springboot整合测试

    SpringBoot整合测试是开发过程中必不可少的一环,它能确保代码的质量和系统的稳定性。Spring Boot以其简洁的配置和快速启动的特点,极大地简化了Java应用的开发。然而,即使如此,我们仍需要通过有效的测试来验证...

    springboot与consul整合案例

    例如,使用 `@LoadBalanced` 的 RestTemplate 或者 Spring Cloud 的 Feign 客户端,它们会自动从 Consul 获取服务实例并进行负载均衡。 8. **配置 Consul 多数据中心**: 如果你的应用部署在多个数据中心,Consul ...

    基于Springboot的Forest调用第三方API Demo

    在Spring Boot项目中,我们可以通过Java的HttpURLConnection或者Spring的RestTemplate与Okhttp结合,实现高效的API调用。 **HttpClient** Apache HttpClient是Apache软件基金会的一个项目,它提供了丰富的HTTP协议...

    SpringBoot-OneNet.zip

    在本项目中,"SpringBoot-OneNet.zip" 文件是一个整合了SpringBoot框架和IoT(物联网)技术的应用,主要用于与OneNet云平台交互。以下是该项目的关键知识点和详细说明: 1. **SpringBoot**: SpringBoot是Spring...

    springboot +mybatis+dubbo案例

    在本项目中,我们探索的是一个整合了SpringBoot、MyBatis和Dubbo的实战案例。这个案例旨在帮助开发者理解如何在实际开发中有效地利用这三个技术栈,构建高性能、高可扩展性的微服务架构。 首先,SpringBoot是Spring...

    springboot-zookeeper-client.rar

    将Zookeeper与SpringBoot整合,可以轻松实现服务的注册与发现、配置中心等功能。 1. **Zookeeper基础** - Zookeeper是由Apache基金会开发的分布式协调服务,基于分布式数据一致性模型ZAB协议,提供高可用性。 - ...

    SpringBoot2.0整合SpringCloud Finchley @hystrixcommand注解找不到解决方案

    return this.restTemplate.getForObject("http://microservice-provider-user/simple/" + id, User.class); } ``` 2. `fallbackMethod`: 当命令执行失败或触发超时时,将调用此指定的方法作为回退逻辑。在上面的...

    基于SpringBoot的移动电商后台系统源码.zip

    总的来说,这个基于SpringBoot的移动电商后台系统源码,展示了如何利用SpringBoot的特性构建一个完整的业务系统,涵盖了微服务架构、数据库操作、权限控制、并发处理、第三方接口整合等多个方面。深入理解这个系统,...

    基于SpringBoot的自助洗车店运营系统设计.pdf

    7. **日志与监控**:系统应具备日志记录和性能监控功能,SpringBoot与Logback或ELK栈(Elasticsearch, Logstash, Kibana)的整合,可以帮助运营者分析系统运行情况,及时发现并解决问题。 8. **异常处理与测试**:...

    httpclient(springboot)demo

    总结来说,这个"SpringBoot+HttpClient"的demo展示了如何在Spring Boot应用中利用HttpClient执行HTTP请求,并通过配置连接超时等参数优化网络通信。通过学习这个示例,开发者可以更好地理解和实践HTTP客户端编程,...

    springboot做的天气查看及jps定位

    在本项目中,"springboot做的天气查看及jps定位"是一个使用Spring Boot框架构建的应用,它整合了天气查询功能并结合了Java进程状态检查工具(JPS)。这个应用展示了Spring Boot如何优雅地将多种服务集成在一起,为...

    SpringBoot502餐厅点餐系统.zip

    4. 支付集成:可能与第三方支付平台(如支付宝、微信支付)进行API对接,实现在线支付功能,这需要用到SpringBoot的Web客户端库,如RestTemplate或WebClient。 5. 数据存储:订单、用户信息等数据需要持久化存储,...

    springboot.zip

    这通常涉及到网络请求,而SpringBoot可以通过集成如RestTemplate或WebClient等工具来实现。此外,开发者可能还利用了SpringBoot的自动配置特性,使得这些API调用更加便捷。 接着,"进行缓存(不需要的可以注掉)"这...

Global site tag (gtag.js) - Google Analytics