美文网首页
《三》、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