美文网首页
《三》、springcloud微服务案例—— 部门微服务消费者C

《三》、springcloud微服务案例—— 部门微服务消费者C

作者: 神奇作手 | 来源:发表于2019-07-18 15:25 被阅读0次

一、构建 microservicecloud-consumer-dept-80 部门微服务提供者 Module

(1)、新建 microservicecloud-consumer-dept-80 模块
(2)、pom.xml文件

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>cn.smilexl.springcloud</groupId>
        <artifactId>microservicecloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <artifactId>microservicecloud-consumer-dept-80</artifactId>
    <description>部门微服务消费者</description>

    <dependencies>
        <dependency><!-- 自己定义的api -->
            <groupId>cn.smilexl.springcloud</groupId>
            <artifactId>microservicecloud-api</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
             
        <!-- 修改后立即生效,热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

</project>

(3)、application.yml文件

server:
  port: 80

(4)、cn.smilexl.springcloud.cfgbeans 包下添加ConfigBean类(类似spring里面的applicationContext.xml写入的注入Bean)

package cn.smilexl.springcloud.cfgbeans;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration   //配置类,类似spring里面的applicationContext.xml
public class ConfigBean {

    /**
     * RestTemplate提供了多种便捷访问远程Http服务的方法
      *     是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集
      *    使用restTemplate访问restful接口非常的简单粗暴无脑。
     *  (url, requestMap, ResponseBean.class)这三个参数分别代表 
     *  REST请求地址、请求参数、HTTP响应转换被转换成的对象类型。
     */
    @Bean //注入bean
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }   
    
}
//相对于,<bean id="restTemplate" class="com.smilexl.springcloud.cfgbean.RestTemplate">


(5)、cn.smilexl.springcloud.controller 包下新建 DeptController_Consumer 部门微服务消费者 REST

package cn.smilexl.springcloud.controller;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import cn.smilexl.springcloud.entities.Dept;

@RestController
public class DeptController_Consumer {
    
    /**
     * RestTemplate提供了多种便捷访问远程Http服务的方法
      *   是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集
      *   使用restTemplate访问restful接口非常的简单粗暴无脑。
     *  (url, requestMap, ResponseBean.class)这三个参数分别代表 
     *  REST请求地址、请求参数、HTTP响应转换被转换成的对象类型。
     */
    
    private static final String REST_URL_PREFIX = "http://localhost:8001";
    
    @Autowired
    private RestTemplate restTemplate;
    
        // 添加
        @GetMapping("/consumer/dept/add")
        public Boolean add(Dept dept) {
            return restTemplate.postForObject(REST_URL_PREFIX + "/dept/add", dept, Boolean.class);
        }

        // 根据id查询
        @GetMapping("/consumer/dept/get/{id}")
        public Dept get(@PathVariable("id") Long id) {
            return restTemplate.getForObject(REST_URL_PREFIX + "/dept/get/" + id, Dept.class);
        }

        // 根据id查询
        @SuppressWarnings("unchecked")
        @GetMapping("/consumer/dept/list")
        public List<Dept> list() {
            return restTemplate.getForObject(REST_URL_PREFIX + "/dept/list", List.class);
        }

}

RestTemplate提供了多种便捷访问远程Http服务的方法
    是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集
    使用restTemplate访问restful接口非常的简单粗暴无脑。
    (url, requestMap, ResponseBean.class)这三个参数分别代表
    REST请求地址、请求参数、HTTP响应转换被转换成的对象类型。

(6)、创建主启动类 DeptConsumer80_App

package cn.smilexl.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DeptConsumer80_App {
    
    public static void main(String[] args) {
        SpringApplication.run(DeptConsumer80_App.class, args);
    }

}

(7)、启动测试

分别启动服务:
   microservicecloud-provider-dept-8001,
   microservicecloud-consumer-dept-80

相关文章

网友评论

      本文标题:《三》、springcloud微服务案例—— 部门微服务消费者C

      本文链接:https://www.haomeiwen.com/subject/ntjllctx.html