spring could环境搭建 整理 基础版

一、创建父项目

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

二、创建 服务项目

在这里插入图片描述

需要做的配置

1)加上对应的注解

在这里插入图片描述

2)yml配置

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

在这里插入图片描述

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

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

创建的时候加入对应的依赖
在这里插入图片描述

1)yml配置

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

在这里插入图片描述

2)代码结构

还在正常的 entity,mapper接口,service ,controller,xml
在这里插入图片描述

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

在这里插入图片描述

1)yml 配置

  • 端口号
  • application name
  • eureka配置

在这里插入图片描述

2)消费者的代码结构

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

在这里插入图片描述

以上就完成了一个基本的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数据才可以
在这里插入图片描述

直接使用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类型,结果当然是调不通的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章