首页 > 其他分享 >0206_【掌握】微服务消费者

0206_【掌握】微服务消费者

时间:2022-12-26 23:34:15浏览次数:39  
标签:return 消费者 掌握 8001 0206 dept provider consumer public

1、
project(":consumer-springboot-80") { // 消费端模块

   dependencies {

    implementation(project(":common-api")) // 导入公共的子模块

  }

}

2、
server: # 服务端配置
  port: 80 # 这个接口可以随意,反正最终都是由前端提供服务

3、
package com.yootk.consumer.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import org.springframework.web.client.RestTemplate;
@Configuration

public class RestTemplateConfig { // 实现RestTemplate的相关配置

  @Bean // 向Spring容器之中进行Bean注册

   public RestTemplate getRestTemplate() {

    return new RestTemplate();

  }

}

4、
http://provider-dept-8001:8001/provider/dept/get/1

http://provider-dept-8001:8001/provider/dept/list
http://provider-dept-8001:8001/provider/dept/split?cp=1&ls=2&col=dname&kw=
http://provider-dept-8001:8001/provider/dept/add


5、
package com.yootk.consumer.action;

@RestController
@RequestMapping("/consumer/dept/*") // 两个不同的服务路径

public class DeptConsumerAction { // 消费端Action

// 定义出要访问的部门微服务所需要的核心路径前缀,随后在具体请求的时候添加传递的参数

  public static final String DEPT_ADD_URL ="http://provider-dept-8001:8001/provider/dept/add";
  public static final String DEPT_GET_URL ="http://provider-dept-8001:8001/provider/dept/get/"; // id是自己变更的
  public static final String DEPT_LIST_URL ="http://provider-dept-8001:8001/provider/dept/list";
  public static final String DEPT_SPLIT_URL ="http://provider-dept-8001:8001/provider/dept/split";

@Autowired
private RestTemplate restTemplate; // 本章你是主角儿

    @GetMapping("add") // 消费端接口名称

  public Object addDept(DeptDTO dto) {

  // 需要将当前的DTO对象传递到部门微服务之中,所以此时就要通过RestTemplate对象处理
  return this.restTemplate.postForObject(DEPT_ADD_URL, dto, Boolean.class);

   }

    @GetMapping("get")

public Object get(Long deptno) {
  return this.restTemplate.getForObject(DEPT_GET_URL + deptno, DeptDTO.class);
}

    @GetMapping("list")

public Object list() {
return this.restTemplate.getForObject(DEPT_LIST_URL, List.class);
}

  @GetMapping("split")

public Object split(int cp, int ls, String col, String kw) {
    return this.restTemplate.getForObject(DEPT_SPLIT_URL + "?cp=" + cp + "&ls=" + ls + "&col=" + col + "&kw=" + kw, Map.class);
}

}

 

6、

package com.yootk.consumer;

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

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

 

7、
http://consumer-springboot-80/consumer/dept/get?deptno=1
http://consumer-springboot-80/consumer/dept/list
http://consumer-springboot-80/consumer/dept/split?cp=1&ls=2&col=dname&kw
http://consumer-springboot-80/consumer/dept/add?dname=公益直播部&loc=洛阳

 

 

@RestController
@RequestMapping("/provider/dept/*") // 微服务提供者父路径

public class DeptAction {

@Autowired
private IDeptService deptService;

@GetMapping("get/{id}")

public Object get(@PathVariable("id") long id) {
  return this.deptService.get(id);
}

@PostMapping("add")

public Object add(@RequestBody DeptDTO deptDTO) { // 后面会修改参数模式为JSON
  return this.deptService.add(deptDTO);
}

@GetMapping("list")

public Object list() {
  return this.deptService.list();
}

   @GetMapping("split")

public Object split(int cp, int ls, String col, String kw) {
  return this.deptService.split(cp, ls, col, kw);
}

}

标签:return,消费者,掌握,8001,0206,dept,provider,consumer,public
From: https://www.cnblogs.com/cnetsa/p/17007130.html

相关文章

  • 0204_【掌握】微服务提供者
    1、//https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starterimplementationgroup:'com.baomidou',name:'mybatis-plus-boot-starter',versio......
  • 0202_【掌握】构建SpringCloud项目
    1、ext.versions=[//定义全部的依赖库版本号springboot:'2.2.5.RELEASE',//SpringBoot版本号springcloud......
  • 0106_【掌握】SpringCloudNetflix技术架构
    1、https://spring.io/projects/spring-cloud2、https://docs.spring.io/spring-cloud/docs/current/reference/html/ 0107_【掌握】SpringCloudAlibaba技术架构1、ht......
  • C++强化 | 06 一篇文章带你掌握字符数组
    导读数组是信息学中非常重要的一块内容,可以说是必备的,也几乎是信息学竞赛中写代码必用的。前面的三节课,我们讲了一维数组,让大家对一维数组有了更加全面深刻的认知。本篇文章......
  • 为什么说每个程序员都要尽早掌握设计模式相关知识?
    分享下前Google工程师「王争」对于这个话题的思考。 大家好,我是王争。 我相信,很多程序员都已经意识到基础知识的重要性,觉得要夯实基础,才能走得更远,但同时对于如何将基础......
  • JavaScript学习--Item30 数组进阶全掌握
    在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活、强大,不像是Java等强类型高级语......
  • 【基础篇】一文带你掌握 Redis
    一、摘要谈起Redis,相信大家都不会陌生,做过云平台开发的程序员多多少少会接触到它,Redis英文全称:RemoteDictionaryServer,也被称之为远程字典服务。从官方的定义看,Redis......
  • 如何写好文档,5 分钟带你掌握!
    大家好,我是楼仔!写好文档是一项非常重要的软技能,目前已经写了100多篇文章,积累了一些写文章的技巧和方法,正所谓“熟读唐诗三百首,不会作诗也会吟”,下面我就将这一年多的文......
  • SpringBoot2.x系列教程07--新纪元之Maven方式创建SpringBoot项目(掌握)
    SpringBoot系列教程07--新纪元之Maven方式创建SpringBoot项目(掌握)作者:一一哥一.Maven方式创建SpringBoot项目1.配置Maven环境在以maven方式创建SpringBoot项目之前,请先......
  • RocketMQ消费者没有成功消费消息的问题排查
    背景今天下游同事反馈,有一些以取消的订单库存还原异常了,导致部分商品库存没有还原。查日志发现没有收到还原消息,但是查看发送方是可以确认消息是已经发了的,那么是什么原因......