Kevin's blog Kevin's blog
首页
  • Java基础
  • Java高级
  • MySQL
  • JDBC
  • Java 8新特性
  • 原生Servlet
  • 延迟队列
  • 分布式事务
  • ActiveMQ
  • Elasticsearch
  • Stream API
  • Redis 实战(黑马程序员)
  • Redis 课程(尚硅谷)
  • Redis数据类型和常用命令
  • 版本控制
  • Spring Framework
  • Spring MVC Framework
  • MyBatis Framework
  • MyBatis Plus Framework
  • Spring Boot Framework
  • 韩顺平 Spring Boot Framework
  • 在线教育
  • 谷粒商城 - 分布式基础 高级 集群
  • 谷粒商城 - 详细开发文档
  • docker基础
  • docker-compose容器编排
  • docker swarm集群管理
  • Vue2基础
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Kevin

Java系统笔记
首页
  • Java基础
  • Java高级
  • MySQL
  • JDBC
  • Java 8新特性
  • 原生Servlet
  • 延迟队列
  • 分布式事务
  • ActiveMQ
  • Elasticsearch
  • Stream API
  • Redis 实战(黑马程序员)
  • Redis 课程(尚硅谷)
  • Redis数据类型和常用命令
  • 版本控制
  • Spring Framework
  • Spring MVC Framework
  • MyBatis Framework
  • MyBatis Plus Framework
  • Spring Boot Framework
  • 韩顺平 Spring Boot Framework
  • 在线教育
  • 谷粒商城 - 分布式基础 高级 集群
  • 谷粒商城 - 详细开发文档
  • docker基础
  • docker-compose容器编排
  • docker swarm集群管理
  • Vue2基础
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 项目 在线教育

    • 项目简介

    • Mybatis Plus入门

    • 课程中心微服务搭建

    • 前后端分离相关知识

    • 后台管理系统前端页面的搭建

    • 整合阿里云OSS文件上传

    • 使用POI实现Excel导入导出

    • 整合POI实现课程类目管理

    • 课程基本信息管理

    • 课程章节信息管理

    • 课程课时管理

    • 使用阿里云视频点播

    • 媒资管理

    • spring cloud服务发现和服务调用

      • 服务发现-搭建Eureka服务
      • 服务调用-Feign
        • 完善删除课程业务
      • 整合ECharts实现统计分析

      • 服务端渲染NUXT

      • 整合阿里云播放器

      • 微服务安全

      • 整合微信登录

      • spring cloud zuul 微服务网关在项目中的应用

      • 总结

    • 项目 谷粒商城

    • 项目 谷粒商城详细开发文档

    • Project
    • 项目 在线教育
    • spring cloud服务发现和服务调用
    zhihuanwang
    2023-09-25
    目录

    服务调用-Feign

    # 一、Feign

    # 1、基本概念

    • Feign是Netflix开发的声明式、模板化的HTTP客户端, Feign可以帮助我们更快捷、优雅地调用HTTP API。
    • Feign支持多种注解,例如Feign自带的注解或者JAX-RS注解等。
    • Spring Cloud对Feign进行了增强,使Feign支持了Spring MVC注解,并整合了Ribbon和Eureka,从而让Feign的使用更加方便。
    • Spring Cloud Feign是基于Netflix feign实现,整合了Spring Cloud Ribbon和Spring Cloud Hystrix,除了提供这两者的强大功能外,还提供了一种声明式的Web服务客户端定义的方式。
    • Spring Cloud Feign帮助我们定义和实现依赖服务接口的定义。在Spring Cloud feign的实现下,只需要创建一个接口并用注解方式配置它,即可完成服务提供方的接口绑定,简化了在使用Spring Cloud Ribbon时自行封装服务调用客户端的开发量。

    #

    # 二、实现服务调用

    # 1、需求

    删除课时的同时删除云端视频

    # 2、在调用端添加pom依赖

    在edu微服务中添加

    <!--服务调用-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    
    1
    2
    3
    4
    5

    # 3、在调用端的启动类添加注解

    @EnableFeignClients
    
    1

    4、创建包和接口

    创建client包

    @FeignClient注解用于指定从哪个服务中调用功能 ,名称与被调用的服务名保持一致。

    @GetMapping注解用于对被调用的微服务进行地址映射。

    @PathVariable注解一定要指定参数名称,否则出错

    @Component注解防止,在其他位置注入CodClient时idea报错

    package com.guli.edu.client;
    
    @FeignClient("guli-vod")
    @Component
    public interface VodClient {
        @DeleteMapping(value = "/admin/vod/video/{videoId}")
        public R removeVideo(@PathVariable("videoId") String videoId);
    }
    
    1
    2
    3
    4
    5
    6
    7
    8

    5、调用微服务

    在调用端的VideoServiceImpl中调用client中的方法

    @Override
    public boolean removeVideoById(String id) {
    
        //查询云端视频id
        Video video = baseMapper.selectById(id);
        String videoSourceId = video.getVideoSourceId();
        //删除视频资源
        if(!StringUtils.isEmpty(videoSourceId)){
            vodClient.removeVideo(videoSourceId);
        }
    
        Integer result = baseMapper.deleteById(id);
        return null != result && result > 0;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    # 6、测试

    启动相关微服务

    测试删除课时的功能

    编辑 (opens new window)
    上次更新: 2024/06/15, 15:12:25
    服务发现-搭建Eureka服务
    完善删除课程业务

    ← 服务发现-搭建Eureka服务 完善删除课程业务→

    最近更新
    01
    04.Spring Boot 韩顺平
    10-12
    02
    day14
    08-29
    03
    day09
    08-29
    更多文章>
    Theme by Vdoing | Copyright © 2019-2025 Evan Xu | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式