zoukankan      html  css  js  c++  java
  • RestTemplete

    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")
        @ResponseBody
        public 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/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/mvc
        http://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
    
    @Autowired
        private 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);
  • 相关阅读:
    jquery的each()详细介绍【转】
    牛客-小w的a=b问题
    HDU-6707-Shuffle Card(很数据结构的一道题)
    HDU-6672-Seq
    牛客-随机数
    牛客-小阳的贝壳
    HDU-4417-Super Mario
    牛客-Corn Fields
    HDU-2665-Kth number
    线段树模板
  • 原文地址:https://www.cnblogs.com/inspred/p/10491160.html
Copyright © 2011-2022 走看看