OpenFeign使用的步骤

一、在需要调用别人服务的项目引入openfeign依赖

2、编写openfeign的client,在该接口上加上注解@FeignClient("被调服务名称")

3、将调用的目标复制到client中,该目标包括地址和方法,参考如下:

目标地址:

    @GetMapping("/selectAll")
    public R selectAll(Page page, SmsCoupon smsCoupon) {
        return R.ok(this.smsCouponService.page(page, new QueryWrapper<>(smsCoupon)));
    }

 对应client

@FeignClient("coupon")
public interface CouponFeignService {

    @GetMapping("/coupon/smsCoupon/selectAll")
    public R selectAll(Page page, SmsCoupon smsCoupon);
}

主程序:

@EnableFeignClients(basePackages = "com.boot.shop.feign")
@EnableDiscoveryClient
@SpringBootApplication
public class MemberApplication {
    public static void main(String[] args) {
        SpringApplication.run(MemberApplication.class,args);
    }
}

使用:

    @GetMapping("/selectAll")
    public R selectAll(Page page, UmsMember umsMember) {
        Page memberPage = umsMemberService.page(page, new QueryWrapper<>(umsMember));
        Object data = couponFeignService.selectAll().getData();
        Map map = new HashMap<>();
        map.put("会员服务",memberPage);
        map.put("优惠券",data);
        return R.ok(map);
    }

Nacos的使用总结:

一、引入依赖

二、新建bootstrap.yaml配置文件,该配置文件的优先级最高,springboot首先会扫描该配置文件。

三、在bootstrap.yaml配置文件中配置注册中心和配置中心地址,以及配置文件的文件类型,例如yaml、properties同时配置读取配置中心的配置文件名,以及该配置存在的命名空间和分组,一般我们将命名空间设置为不同的环境,例如:dev、prod、test等,将分组设置为在命名空间下以服务划分的隔离空间,也就是说,命名空间是大维度的隔离而分组则是大维度下的更小隔离空间,例如:order、product、user、member等,每个分组对应一个微服务的配置,此外,随着配置的增加,我们可以将同一个配置文件拆分成多个,比如:将数据源、mybatis等单独拆成一个配置文件,这些拆出的配置文件使用extension-configs配置引入,参考如下:

OpenFeign使用的步骤_第1张图片

一般来说、我们在bootstrop.yaml中要配置应用名、注册中心、配置中心、环境激活项。此外在我们配置时,我们要细心一些,一定要对比配置中心和bootstrap.yaml的配置,避免单词写错导致配置不生效。

spring:
  application:
    name: member
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
        namespace: 9912edd4-d472-4822-a7b6-0c4b09fc50e6
      config:
        server-addr: localhost:8848
        file-extension: yaml
        refresh-enabled: true
        namespace: 9912edd4-d472-4822-a7b6-0c4b09fc50e6
        group: member
        extension-configs:
          - data-id: datasource.yaml
            group: member
            refresh: true

          - data-id: mybatis.yaml
            group: member
            refresh: true

你可能感兴趣的:(SpringBoot,java,spring,spring,boot)