Feign 工程构建|学习笔记

简介: 快速学习 Feign 工程构建

开发者学堂课程【微服务框架 Spring Cloud 快速入门Feign 工程构建】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/614/detail/9360


Feign 工程构建

 

一、Feign 使用步骤

Feign 的构建:面向接口调用微服务。

1. 参考microservicecloud-consumer-dept-80新建

microservicecloud-consumer-dept-feign

根据前面的内容用之前的步骤将80的内容拷贝到今天的工程,之后修改启动类名字,DeptConsumer80_Feign_App后发现是microservicecloud-consumer-dept-80 [boot][devtools] 它的相关内容,之后将80内的文件复制粘贴,在将文件myrule文件删除

2. microservicecloud-consumer-dept-feign工程pom.xml修改,主要添加对feign的支持

发现文件报错,在这里参考80,将所需的编程语言拷贝复制,在将一些语言删除,完成后发现 feign 的 pom 就需要添加一些对feign 的相关支持:

Feign 的相关内容:

org.springframework.cloudspring-cloud-starter-feign

3. 修改microservicecloud-api工程

(1)POM

首先找到相关的 dependency,把要修改的内容

org.springframework.cloud

spring-cloud-starter-feign

添加相关得支持添加入工程。

(2)新建 DeptClientService 接口并新增注解 @FeignClient

在 api 上新建一个 package,把 name 设置成 service,在这里添加接口

package com.atguigu.springcloud . service;

public interface DeptClientService(这里直接增加接口)

{

public Dept get(@PathVariable("id") long id);

public List list();

public boolean add(Dept dept);

}

@FeignClient

在这里又发现了新的注解 @FeignClient

这个接口,

@FeignClient(value = "MICROSERVICECLOUD-DEPT")public ()interface DeptclientService

{

面向接口的编码,

这个 feign 都是 client,一个接口使客户端变得更容易。

mvn clean

mvn install

之后的 install 和 clean 保证了每次质量保证每次包都是最新的

因为这个 api 他是所有 nd 器接口的还有公共的一些顺序和配置,现在要面向接口编程进行微服务,由于考虑不止一个要调用的问题,所以一些通用公共的放在 vice 工程

4. 主要添加对feign的支持团修改microservicecloud-api工程Controller,添加上一步新建的DeptClientService接口

因为上一步修改完api。它的 feign 建在DeptController_Consumer.java

是之前版本是 rest 编程,要用

public class DeptController_Consumer{

@Autowired

private DeptclientService service;

接下来就是 controller 调用 service

5. DeptClientSemicroservicecloud-consumer-dept-feign工程修改主启动类--@EnableFeignClients

这里用@EnableFeignClients对@Feignclicnt开启和启用

@EnableFqignclients(basePackages={ "com.atguigu.springcloud"})cloud里面的学籍)

@ComponentScan( "com.atguigu.springcloud")要访问的包)

6. 测试

(1)启动3个 eureka 集群

(2)启动3个部门微服务 8001/8002/8003

Feign 集成了 Ribbon

利用Ribbon维护了 MicroServiceCloud-Dept 的服务列表信息,并且通过轮询实现了客户端的负载均衡。而与 Ribbon 不同的是,通过 feign 只需要定义服务绑定接口里以声明式的方法,优雅而简单的实现了服务调用 说明 feign 带着默认 ribbon 的轮询算法,启动以后等待注册。

(3)启动 Feign 自己启动

将七个微服务启动。

(4)http:/flocalhosticonsumerfdept/list

(5)Feign 自带负载均衡配置项

将地址刷新引进,发现因为通过 consumer 的访问地址完成了 feign 面向接口的微服务。

7. 总结

Feign通过接口的方法调用 Rest 服务(之前是 Ribbon+RestTemplate) ,该请求发送给Eureka 服务器(http://MICROSERVICECLOUD-DEPT/dept/list),

通过 Feign 直接找到服务接口,由于在进行服务调用的时候融合了 Ribbon 技术,所以也支持负载均衡作用。

public class DeptController_Consumer

{

@Autowired

private DeptClientService service;

相关文章
|
1月前
|
XML 存储 Java
SpringBoot集成Flowable:构建强大的工作流引擎
在企业级应用开发中,工作流管理是核心功能之一。Flowable是一个开源的工作流引擎,它提供了BPMN 2.0规范的实现,并且与SpringBoot框架完美集成。本文将探讨如何使用SpringBoot和Flowable构建一个强大的工作流引擎,并分享一些实践技巧。
85 0
|
4月前
|
XML 前端开发 Java
还不会SpringBoot项目模块分层?来这手把手教你
本文详细介绍了如何为SpringBoot项目创建模块并进行合理的分层设计。通过逐步演示,从创建项目到构建各功能模块,再到具体代码实现,手把手教你实现整洁的代码分层。主要内容包括:创建依赖层、主启动层、模块层及其子模块(如共通层、控制器层、数据持久层等),并通过实例演示了从前端请求到后台服务调用的实际流程。适合SpringBoot初学者及有一定经验但需优化项目结构的开发者参考。
324 2
还不会SpringBoot项目模块分层?来这手把手教你
|
安全 Java 数据安全/隐私保护
微服务技术系列教程(37)- SpringBoot -SpringSecurity简介
微服务技术系列教程(37)- SpringBoot -SpringSecurity简介
71 0
|
7月前
【十九】搭建SpringCloud项目三(Feign)
【十九】搭建SpringCloud项目三(Feign)
58 0
|
7月前
|
Java 微服务 Spring
SpringCloud学习(2):集成Euraka
SpringCloud学习(2):集成Euraka
58 0
|
Java Maven 微服务
【工程】-一文带你使用Gradle构建SpringBoot微服务项目
【工程】-一文带你使用Gradle构建SpringBoot微服务项目
1907 0
【工程】-一文带你使用Gradle构建SpringBoot微服务项目
|
Java 应用服务中间件 API
解决SpringBoot多模块发布时99%的问题?SpringBoot发布的8个原则和4个问题的解决方案
解决SpringBoot多模块发布时99%的问题?SpringBoot发布的8个原则和4个问题的解决方案
641 0
解决SpringBoot多模块发布时99%的问题?SpringBoot发布的8个原则和4个问题的解决方案
|
SQL Java 关系型数据库
Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0
Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0
206 0
|
Java 应用服务中间件 Maven
基于SpringBoot框架的程序开发步骤
基于SpringBoot框架的程序开发步骤
|
API 微服务
06、SpringCloud之feign的工程化实例(分布式工程)(一)
06、SpringCloud之feign的工程化实例(分布式工程)(一)
06、SpringCloud之feign的工程化实例(分布式工程)(一)