【springcloud开发教程】服务搭建——服务消费者

新建服务消费者Module

【springcloud开发教程】服务搭建——服务消费者_第1张图片

项目结构

作为消费者,不应该有service层;RestTemplate为我们提供了方法供我们直接调用。

我们需要将restTemplate注册到Spring中(地址:url, 实体:Map,ClassresponseType);

RestTemplate为我们提供多种便捷访问远程http服务的方法并且安全性更高。

将RestTemplate加入到spring中 

【springcloud开发教程】服务搭建——服务消费者_第2张图片

 

【springcloud开发教程】服务搭建——服务消费者_第3张图片

 

    @Autowired
    private RestTemplate restTemplate;
    /**
     * 服务提供方地址前缀
     * Ribbon:我们这里的地址,应该是一个变量,通过服务名来访问
     */
    private static final String REST_URL_PREFIX = "http://localhost:8001";
    //private static final String REST_URL_PREFIX = "http://SPRINGCLOUD-PROVIDER-DEPT";
    /**
     * 消费方添加部门信息
     * @param dept
     * @return
     */
    @RequestMapping("/consumer/dept/add")
    public boolean add(Dept dept) {
        // postForObject(服务提供方地址(接口),参数实体,返回类型.class)
        return restTemplate.postForObject(REST_URL_PREFIX + "/dept/add", dept, Boolean.class);
    }
    /**
     * 消费方根据id查询部门信息
     * @param id
     * @return
     */
    @RequestMapping("/consumer/dept/get/{id}")
    public Dept get(@PathVariable("id") Long id) {
        // getForObject(服务提供方地址(接口),返回类型.class)
        return restTemplate.getForObject(REST_URL_PREFIX + "/dept/get/" + id, Dept.class);
    }
    /**
     * 消费方查询部门信息列表
     * @return
     */
    @RequestMapping("/consumer/dept/list")
    public List list() {
        return restTemplate.getForObject(REST_URL_PREFIX + "/dept/list", List.class);
    }

 最后,我们这里还需要拿到实体类,所以要将springcloud-api引入



    
        springcloud
        org.example
        1.0-SNAPSHOT
    
    4.0.0

    springcloud-consum-dept-8080


    
    
        org.example
        springcloud-api
        1.0-SNAPSHOT
    

        
            org.springframework.boot
            spring-boot-starter-web
        

    
        org.springframework.boot
        spring-boot-devtools
    
    

你可能感兴趣的:(springcloud开发教程,spring,cloud,spring,后端)