SpringCloud项目之Feign搭建

从零搭建一个SpringCloud项目之Feign搭建

工程简述

目的:实现trade服务通过feign调用user服务的功能。因为trade服务会用到user里的一些类和接口,所以抽出了其他服务需要的东西到user-api工程。避免trade直接依赖user导致依赖多余的东西。

一、创建User接口工程user-api

  1. 新建一个module,取名为study-user-api
  2. 引入pom文件
<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
    </dependencies>
  1. 创建一个User实体类
  2. 编写一个UserApi接口,value里的study-user对应后面user实现工程的spring.application.name的值
@FeignClient(value = "study-user")
public interface UserApi {
    @RequestMapping(value = "/getUserById",method = RequestMethod.GET)
    User getUserById(Integer id);
}

二、创建User实现工程

  1. 创建一个module用于对user接口提供实现,项目名为study-user
  2. 加入pom依赖
<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--  本地依赖-->
        <dependency>
            <artifactId>study-user-api</artifactId>
            <groupId>com.mmc</groupId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
  1. 配置文件
server.port=8003
#注册到eureka服务端的微服务名称
spring.application.name=study-user
#注册到eureka服务端的地址
#eureka.client.service-url.defaultZone=http://localhost:9000/eureka/
security.login.username=root
security.login.pass=123456789
eureka.client.service-url.defaultZone=http://${security.login.username}:${security.login.pass}@localhost:9000/eureka/
#点击具体的微服务,是否显示ip
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=study-user-8003
  1. 写user接口实现,一个UserController
@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/getUserById")
    public User getUserById(Integer id){
        User user = new User();
        user.setId(1);
        user.setName("小明");
        return user;
    }
}

三、创建交易工程

  1. 新建一个module,项目名为study-trade
  2. 引入pom依赖
<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <!--  本地依赖-->
        <dependency>
            <artifactId>study-user-api</artifactId>
            <groupId>com.mmc</groupId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
  1. 编写配置文件
server.port=8005
#注册到eureka服务端的微服务名称
spring.application.name=study-trade
#注册到eureka服务端的地址
#eureka.client.service-url.defaultZone=http://localhost:9000/eureka/
security.login.username=root
security.login.pass=123456789
eureka.client.service-url.defaultZone=http://${security.login.username}:${security.login.pass}@localhost:9000/eureka/
#点击具体的微服务,是否显示ip
eureka.instance.prefer-ip-address=true
eureka.instance.instance-id=study-trade-8005
  1. 写controller调用user服务
/**
 * @description:
 * @author: mmc
 * @create: 2020-04-05 11:41
 **/
@RestController
@RequestMapping("/trade")
public class TradeController {

    @Autowired
    private UserApi userApi;

    @RequestMapping(value = "/testTrade/{userid}",method = RequestMethod.GET)
    public String testTrade(@PathVariable Integer userid){
        User user= userApi.getUserById(userid);
        String name = user.getName();
        System.out.println("用户"+name+"下单成功....");
        return "用户"+name+"下单成功";
    }
}
  1. 启动类配置启用feign注解
@SpringBootApplication
@EnableFeignClients(basePackages = "com.mmc.user")
public class TradeApplication {

    public static void main(String[] args) {
        SpringApplication.run(TradeApplication.class);
    }

}
  1. 测试

依次启动eureka Server,user工程,trade工程。输入网址测试

http://localhost:8005/trade/testTrade/1

原文地址:https://www.cnblogs.com/MonsterJ/p/12694207.html

时间: 2024-08-30 18:08:56

SpringCloud项目之Feign搭建的相关文章

spring cloud (六) 将一个普通的springcloud项目 非feign或ribbon项目,改造成turbine可聚合监听的项目

改造之前一个项目 service-a 1 pom.xml添加如下 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframewor

微服务SpringCloud项目架构搭建入门

Spring的微服务框架SpringCloud受到众多公司欢迎,给大家带来一篇框架搭建入门.本次采用的版本是Spring Cloud版本为Finchley.RELEASE. 一.SpringCloud项目简介 spring cloud: 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发人员的电脑上跑. Spring Boot: 旨在简化创建产品级的 Spring 应用和服务,简化了配

一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目

在spring cloud系列章节中,本来已经写了几个章节了,但是自己看起来有些东西写得比较杂,所以重构了一下springcloud的章节内容,新写了本章节,先教大家在工作中如何搭建一个多模块的springcloud项目. 本章及后面章节,我们使用的开发环境是 spring tool suite (sts)  + maven (当然你也可以使用IDEA + Gradle,目前使用的公司也很多). 一.新建一个父maven project模块 File->new->other->maven

spring-cloud项目搭建

springCloud项目搭建手册 springcloud应用场景及微服务框架发展趋势 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,群集状态).分布式系统的协调导致样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序.它们可以在任何分布式环境中正常工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Fo

微服务中基于Spring Boot的maven分布式项目框架的搭建

项目介绍 这里搭建的是基于 maven 的分布式工程,因为在一个项目中,多个微服务是属于同一个工程,只不过是提供不同的服务而已,再加上 IDEA 是默认一个窗口打开一个项目工程(这点和 eclipse 不同),如果项目大,不用 maven 聚合工程的话,那估计会打开十几个窗口--会崩溃--而且在架构上,也应该使用 maven 分布式工程来搭建微服务架构.这里手把手教大家在 IDEA 中搭建基于 maven 分布式的 Spring Cloud 微服务工程架构. maven分布式工程架构首先来看一下

使用docker-compose运行springcloud项目

前言: 学习Docker的过程中,一直想使用Docker运行SpringCloud程序,今天就将搭建过程记录下来,以作总结. 一.Docker安装 这里因为一些原因,被迫写了个Centos下的Docker安装脚本.至于为什么被迫,这里先埋下一个伏笔. #!/bin/bash # Centos新版本Docker安装:https://www.cnblogs.com/Peter2014/p/7704306.html # step 1: 安装必要的一些系统工具 yum install -y yum-ut

Spring-cloud之Eureka服务搭建、集群

eureka是什么? eureka是Netfix的子模块之一也是核心模块,eureka有2个组件,一个eurekaServer(独立的一个微服务),这个服务主要是用来定位服务以实现中间层服务器的负载平衡和故障转移.另外一个是是eurekaClient(我们自己的微服务),是用来与server进行交互的,使服务之间的交互变的非常简单,只需要通过服务标识符即可在server中拿到想要的微服务. 角色关系图: 如何使用? 在spring-cloud项目里面加入依赖: eureka客户端(需要注册的服务

Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)

写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文.可以去补下基础. 步骤一:File  ->  New  -> Project   ->  Maven Project 步骤二:自行设置,待会创建的myHBase工程,放在哪个目录下. 步骤三: 步骤四:

iOS项目框架的搭建

好久没写博客了,近来学习swift,准备用swift仿写个项目,就找了找appstore,找了一个叫半糖的项目,看着界面真不错,但是感觉技术跟不上,先试着写写吧 档成文件夹,如图所示 打开文件夹,找到payload,打开,然后右击显示包内容,然后你就看到一大堆的资源文件了,不过你会发现找来找去都找不到tabbar的图片,今天给大家介绍个厉害的工具https://github.com/devcxm/iOS-Images-Extractor,上Git搜索下 你会有意想不到的惊喜哦,下载下来后如图,直