一、创建父项目

创建一个maven 项目,删掉src 文件夹

二、创建 服务项目

spring could环境搭建 整理 基础版

需要做的配置

1)加上对应的注解

spring could环境搭建 整理 基础版

2)yml配置

  • server 端口号
  • eureka 配置
  • 两个false register 和fetch

spring could环境搭建 整理 基础版

3)优先启动这个项目,让其他的服务来注册

三、创建 一个提供者项目(module)

创建的时候加入对应的依赖
spring could环境搭建 整理 基础版

1)yml配置

  • 配置对应的 application 名称
  • 配置数据库
  • 配置mybatis
  • 配置 eureka

spring could环境搭建 整理 基础版

2)代码结构

还在正常的 entity,mapper接口,service ,controller,xml
spring could环境搭建 整理 基础版

四、创建消费者项目(module)

spring could环境搭建 整理 基础版

1)yml 配置

  • 端口号
  • application name
  • eureka配置

spring could环境搭建 整理 基础版

2)消费者的代码结构

  • service接口
  • service接口实现类
  • feign 接口
  • feign 接口的实现类(如果需要熔断之后的默认数据的话) 在 service接口实现类中调用 feign 接口

spring could环境搭建 整理 基础版

以上就完成了一个基本的spring could 的提供者消费者的配置
但是此刻开始,需要注意的 是各种参数的传递问题,笔者这个环节比较头大
参数的传递主要有两个环节
1)前端传参数给 消费者的 controller
2)消费者调用feign 接口,传参给 provider

遇到过的问题

1)controller 接收一个实体类对象,对象为null

2)controller 接收一个实体类对象,对象接收正常,但是 传递到feign 接口里面的时候,传递到provider 里面就不正常

可能的原因
注解使用不当
要么从 provider 到controller 全部不要使用注解(不要加@RequestParam,也不要加 @RequestBody),直接写对象
要么从 provider 到controller 全部使用注解@RequestParam,全部添加 @RequestParam,此时的参数使用 Map 接收,不要使用自定义的实体类对象
接收对象的时候全部使用 @RequestBody,但是需要指明 products
@PostMapping(value = “/addNewComment”,produces = {“application/json;charset=UTF-8”})
public ReturnUtil addNewComment(@RequestBody Comment comment){
。。。
}
这个方法需要前端做配合,需要前端传递过来是 json数据才可以
spring could环境搭建 整理 基础版

直接使用postman测试接口的时候
使用post方式,参数以json 的形式写在 body中

3)各种忘加必要的注解

消费者需要加注解

  • 启动类上,使用了feign 接口需要加 @EnableEurekaClient @EnableFeignClients 消费者的
    feign 接口 需要加下面的注解,来指定 提供者,这里就要求需要配置提供者的application name,需要保持一致,指定是哪一个
    提供者 @FeignClient(value = “couldprovider”)
  • 如果需要熔断之后,启动默认的数据,调用默认的接口,需要添加fallback,指定feign接口的实现类即可,正常情况是请求provider的方法,熔断之后,会调用
    feign 接口的实现类里面的方法 @FeignClient(value = “couldprovider”,fallback =
    FeignPhoneServiceImpl.class)

提供者

  • @EnableEurekaClient

注册中心需要加

  • @EnableEurekaServer

4)注意 提供者方法的返回值类型

犯过一个错误,提供者的返回值类型是自定义的一个 ReturnUtil,里面封装了一个list
然后在消费者以为返回的是一个list类型,结果当然是调不通的

相关文章:

  • 2021-09-06
  • 2021-10-22
  • 2021-04-02
  • 2021-12-18
  • 2022-01-06
  • 2021-04-05
  • 2021-05-04
猜你喜欢
  • 2021-05-23
  • 2022-12-23
  • 2021-05-02
  • 2022-12-23
  • 2021-09-25
  • 2022-12-23
相关资源
相似解决方案