zoukankan      html  css  js  c++  java
  • Spring(003)-消费返回list的rest服务

    通过spring提供的RestTemplate就可以访问rest服务。首先需要创建一个RestTemplate,这个需要手动来创建bean

    @Configuration
    public class DemoRestConfiguration {
    
        @Bean
        public RestTemplate restTemplate(SimpleClientHttpRequestFactory simpleClientHttpRequestFactory) {
            return new RestTemplate(simpleClientHttpRequestFactory);
        }
    
        @Bean
        public SimpleClientHttpRequestFactory simpleClientHttpRequestFactory() {
            SimpleClientHttpRequestFactory simpleClientHttpRequestFactory= new SimpleClientHttpRequestFactory();
            simpleClientHttpRequestFactory.setConnectTimeout(1000);
            return simpleClientHttpRequestFactory;
        }
    }

    需要说明的是,这里使用SimpleClientHttpRequestFactory ,是为了可以设置一些参数等,也可以直接new。

    先设计一个返回list的rest服务。

        @GetMapping(value = "/get", produces = "application/json")
        public List<Order> getAllOrders() {
            List<Order> orders = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                Order order = new Order();
                order.setOrderId(i);
                order.setOrderName(String.format("order:%d", i));
                orders.add(order);
            }
            return orders;
        }

    通过postman访问

    通过代码进行访问-Array

    @Service
    public class OrderConsumer {
    
        private static String HOST = "http://localhost:8080/action/";
        @Autowired
        private RestTemplate restTemplate;
    
        public List<Order> getOrders() {
            Order[] orders = restTemplate.getForObject(String.format("%s/get", HOST), Order[].class);
            return Arrays.asList(orders);
        }
    }

    这里需要注意的是,传入了数组,最终也返回了数组。

    测试代码

    通过代码访问2-ParameterizedTypeReference

       public List<Order> getOrdersPtr() {
            ParameterizedTypeReference<List<Order>> ptr = new ParameterizedTypeReference<List<Order>>() {};
            ResponseEntity<List<Order>> list = restTemplate.exchange(String.format("%s/get", HOST), HttpMethod.GET, null, ptr);
           return list.getBody();
        }
  • 相关阅读:
    Maven环境搭建、调试、打包
    JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解
    Activiti工作流引擎核心介绍
    NodeJS概述
    JRE集成到Tomcat
    ORACLE递归查询(适用于ID,PARENTID结构数据表)
    爬虫入门——02
    爬虫入门——01
    利用java.lang.reflect.Constructor动态实例化对象
    【java入门点滴】向上转型与向下转型
  • 原文地址:https://www.cnblogs.com/Brake/p/11854042.html
Copyright © 2011-2022 走看看