RestTemplete是由spring提供的,可以用来模拟浏览器进行服务调用的封装好的Api,和Apache 的HttpClient功能相同,在分布式系统中可以用来服务之间的调用。

开发步骤:

1.引入jar包

<dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency>

2.定义通信数据模型

package com.yzdc.in.model;import java.io.Serializable;public class MSG implements Serializable{String status;Object data;public MSG() {}public MSG(String status) {this.status = status;}public MSG(String status, Object data) {this.status = status;this.data = data;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}public String getStatus() {return status;}public void setStatus(String status) {this.status = status;}}

3.编写被调用方的Restful风格的Api

@RequestMapping(value = "message_consumer",method = RequestMethod.POST,consumes="application/json")@ResponseBodypublic MSG receiveMessage(@RequestBody ReportData reportData){genetatorService.generatorMessage(reportData.getEquipId(),reportData.getThresholdId(),reportData.getValue());return new MSG("200");}

4.实例化RestTemplete(交给spring)

spring-mvc.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd"><mvc:annotation-driven/><!-- 扫描controller(controller层注入)--><context:component-scan base-package="com.yzdc.in.controller"/><mvc:view-controller path="/" view-name="index"/><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="order" value="1"/><property name="prefix" value="/WEB-INF/views/"/><property name="suffix" value=".jsp"/><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/></bean><!-- Client --><bean id="restTemplate" class="org.springframework.web.client.RestTemplate"><property name="messageConverters"><list><bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"><property name="supportedMediaTypes"><list><value>application/json;charset=UTF-8</value></list></property></bean></list></property></bean>
</beans>

4.调用方使用RestTemplete调用:

注入RestTempete@Autowiredprivate RestTemplate restTemplate;调用url:
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<ReportData> entity = new HttpEntity<ReportData>(reportData,headers);
MSG msg = restTemplate.postForObject("http://localhost:8016/minapp/alarm/generator/message_consumer",entity,MSG.class);

转载于:https://www.cnblogs.com/inspred/p/10491160.html

RestTemplete相关推荐

  1. Spring实战1:Spring初探

    现在的Java程序员赶上了好时候.在将近20年的历史中,Java的发展历经沉浮.尽管有很多为人诟病的产品,例如applets.EJB.Java Data Object(JDO)和数不清的日志框架,Ja ...

  2. SpringCloud(笔记)

    简介 学习前提 熟练使用SpringBoot 微服务快速开发框架 了解过Dubbo + Zookeeper 分布式基础 电脑配置内存不低于8G(我自己的是16G) 给大家看下多个服务跑起来后的内存开销 ...

  3. SpringCloud 超详细个人笔记

    文章目录 SpringCloud 1.常见面试题 2.微服务概述 2.1.什么是微服务 2.2.微服务和微服务架构 2.3.微服务优缺点 2.4.微服务技术栈有哪些? 2.5.为什么选择SpringC ...

  4. java tls 证书_在使用Java 8重新协商TLS_1.2期间,服务器证书更改受到限制

    我对SSL很陌生,并且被看似已知的问题所困扰.我的应用程序是SSL客户端,并调用另一个为双向SSL启用的组件.两个组件中的证书都是正确的,有时连接工作正常.每个服务器都有自己的服务器证书和私钥,但具有 ...

  5. 分布式链路追踪技术对比

    常见开源产品 cat, zipkin, pinpoint , skywalking  cat  CAT(Central Application Tracking)基于Java开发的实时监控平台,主要包 ...

  6. 【华为云技术分享】Reactive模式优势与实践

    Reactive编程即反应式编程,随着这些年的发展已经逐步的进入了开发者的视野当中.早在2014年社区就有人发起响应式宣言,推动着Reactive的发展: 响应式宣言 Published on Sep ...

  7. 分布式链路追踪系统深入理解

    背景 对于普通系统或者服务来说,一般通过打日志来进行埋点,然后再通过elk进行定位及分析问题,更有甚者直接远程服务器,使用各种linux命令单手操作查看日志,说到这,我也没摆脱这种困境.那么随着业务越 ...

  8. SpringCloud【框架】

    前言 复习SpringCloud 说明:学的时候自己没做笔记 现在使用 兴趣使然的草帽路飞 的博客内容来复习 说明:我自己写的代码如下 博客中也是粘贴我自己的代码 依稀还记得那时候后一次开启三个服务, ...

  9. 【狂神说】Spring Cloud

    学习资料: 狂神说SpringCloud学习笔记-KuangStudy-文章 (71条消息) 狂神说SpringCloud学习笔记_兴趣使然的草帽路飞-CSDN博客_狂神springcloud (30 ...

最新文章

  1. Swift互用性:采用Cocoa设计模式(Swift 2.0版)-b
  2. linux shell 基础 使用日志与心得
  3. python【蓝桥杯vip练习题库】BASIC-27 2n皇后问题(八皇后问题 搜索)
  4. iphone刷基带_iphone7基带坏了怎么办,iphone7基带修复多少钱
  5. 节点相似性与链路预测
  6. 怎样获取当前页面值php,想要得到当前页面的所有url参数信息怎么用PHP来实现?...
  7. Java String 学习笔记 (一)
  8. linux 远程桌面配置,linux 远程桌面的配置
  9. 3-4HDFS的特点
  10. RabbitMQ入门(2)--工作队列
  11. HDU 4301 Divide Chocolate
  12. 数据结构c语言版实验报告2,数据结构(C语言版) 实验报告 (2)
  13. Smack 4.3.4 API
  14. 一条windows指令合并ts文件
  15. 前端通过localstorage统计浏览量
  16. PC-DARTS 网络结构搜索程序分析
  17. oracle查询所有去掉重复的数据库,ORACLE数据库查询删除重复记录的三种方法
  18. oracle dbf文件迁移,Oracle安装盘空间不足,对.DBF文件进行迁移
  19. 动态添加 data 属性的时候 发现某一个值无法取到
  20. 对图片进行剪切,保留原始比例

热门文章

  1. 聊聊Java中的TLAB
  2. 百度、阿里、小米决战智能音箱
  3. 十折交叉验证pythoniris_python机器学习-交叉验证(cross-vaildation)
  4. 最新『资源分享』IT视频教程
  5. Vscode设置用户代码片段
  6. 网盘搜索工具2019
  7. mysql 在指定的dsn中_指定的DSN包含驱动程序和应用程序之间的体系结构不匹配。 JAVA...
  8. 小米pro 笔记本 计算机,【MI/小米笔记本 Pro超极本】MI 小米 笔记本 Pro 15.6英寸 笔记本电脑【报价 价格 评测 怎么样】 -什么值得买...
  9. Python基础学习:类语法规则
  10. (转载)-关于sg函数的理解