首页 > 其他分享 >SpringBoot开启注册发现并使用feign进行远程调用

SpringBoot开启注册发现并使用feign进行远程调用

时间:2023-12-17 19:24:10浏览次数:29  
标签:feign 调用 SpringBoot coupon spring nacos 远程 cloud

1、安装nacos服务端

nacos下载地址
https://github.com/alibaba/nacos/releases

下载nacos之后解压并启动

image

Nacos默认端口是8848

image

2、配置maven坐标信息

2.1 配置坐标管理

<dependencyManagement>
   <dependencies>
      <dependency>
          <groupId>com.alibaba.cloud</groupId>
          <artifactId>spring-cloud-alibaba-dependencies</artifactId>
          <version>2.1.0.RELEASE</version>
          <type>pom</type>
          <scope>import</scope>
      </dependency>
   </dependencies>
</dependencyManagement>

2.2 配置nacos坐标

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.3 配置nacos服务地址

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
# 服务名称
  application:
     name: gulimall-coupon

2.4 配置开启注册发现

使用@EnableDiscoveryClient 注解开启注册发现

image

2.5 启动项目

image

2.6 浏览器输入 http://127.0.0.1:8848/nacos

输入用户名和密码 nacos/nacos,可以发现服务都注册上去了

image

3、开启远程调用

比如会员服务调用优惠券服务

3.1 配置远程访问依赖管理坐标

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

3.2 配置openfeign坐标

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

3.3 编写对应的远程访问接口包

注意远程调用的接口的方法签名要写完整的签名,例如:/coupon/coupon/member/list

@FeignClient("gulimall-coupon")
@SuppressWarnings("all")
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")
    public R getMemberCoupons();
}

image

3.4 开启远程调用并配置远程调用扫描的包

@EnableFeignClients 注解里边的basePackages参数指定需要进行扫描的包

@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.cc.gulimall.member.feign"})
public class GulimallMemberApplication {
    public static void main(String[] args) {
        SpringApplication.run(GulimallMemberApplication.class, args);
    }
}

image

3.5 远程调用原始接口(优惠卷服务)

@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;
    @RequestMapping("/member/list")
    public R getMemberCoupons() {
        CouponEntity couponEntity = new CouponEntity();
        couponEntity.setCouponName("满100减10");
        couponEntity.setNote("xxxx");
        return R.ok().put("coupons",Arrays.asList(couponEntity));
    }

image

3.6 浏览器访问 http://localhost:8000/member/member/coupons

说明调用成功
image

标签:feign,调用,SpringBoot,coupon,spring,nacos,远程,cloud
From: https://www.cnblogs.com/ccblblog/p/17909581.html

相关文章

  • springboot连接mysql出现的SSL问题
    1、连接配置spring:datasource:username:rootpassword:rooturl:jdbc:mysql://192.168.0.1:3307/admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaidriver-class-name:com.mysql.cj.jdbc.Driver出现SSL连接问题2、解......
  • Java医院3D人体智能导诊系统源码 Uniapp+springboot
    “智能导诊”以人工智能手段为依托,为人们提供智能分诊、问病信息等服务,在一定程度上满足了人们自我健康管理、精准挂号等需求。智能导诊可根据描述的部位和病症,给出适合病症的科室参考。智慧导诊页面会显示男性或女性的身体结构图,可切换正面/背面。通过点击部位选项,选择自己身体不......
  • ARM64技术 —— 系统调用指令SVC、HVC和SMC的使用规则
    来源:learn_the_architecture_-_aarch64_exception_model_102412_0103_01_en.pdf即:EL0不能调用SMC或者HVC这个从HVC和SMC指令的伪码中可以看到:HVCSMC......
  • Android深入学习之Activity与Fragment之间回调函数的调用顺序
    本文使用的例子是用WelcomeActivity托管WelcomeFragment。先来看Log。1.WelcomeActivityWelcomeActivitycreated!2.WelcomeActivityonCreate2.1.WelcomeFragmentWelcomeFragmentcreated!2.2.FragmentManagerCommit:BackStackEntry{cc......
  • SpringBoot集成Swagger的使用
    一、前言Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器。Swagger能够在线自动生成RESTFul接口的文档,同时具备测试接口的功能。简单点来讲就是说......
  • SpringBoot集成多个RabbitMq(多个MQ链接)
    ##2023年12月16日20:25:36 项目中使用RabbitMQ作为应用间信息互通,本次梳理下关于MQ的使用。1、引入依赖<!--引入依赖,使用v2.5.6版本--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-b......
  • 第八章:SpringBoot-Java工程及关系和修改启动logo(了解)
    一、springbootJava工程(了解)二、关闭&修改启动logo(了解)......
  • Springboot整合MybatisPlus
    1、引入mybatis-plus坐标<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.2.0</version></dependency>2、配置数据源spring:datasource:use......
  • Feign源码解析:初始化过程(一)
    前言打算系统分析下Feign的代码,上一篇讲了下Feign的历史,本篇的话,先讲下Feign相关的beanDefinition,beanDefinition就是bean的设计图,bean都是按照beanDefinition来制造的。Feign相关的bean不少,有一些是因为我们的Feign相关注解而引入的,有一部分是因为spring的自动装配来自动引入的......
  • 第三章:SpringBoot集成jsp、mybatis的逆向工程和集成
    一、springboot继承jsp二、mybatis逆向工程三、集成mybatis四、案例-集成mybatis五、集成mybatis总结......