从零搭建一个SpringCloud项目之Feign搭建
从零搭建一个SpringCloud项目之Feign搭建
工程简述
目的:实现trade服务通过feign调用user服务的功能。因为trade服务会用到user里的一些类和接口,所以抽出了其他服务需要的东西到user-api工程。避免trade直接依赖user导致依赖多余的东西。
一、创建User接口工程user-api
新建一个module,取名为study-user-api
引入pom文件
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> </dependencies>
创建一个User实体类
编写一个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实现工程
创建一个module用于对user接口提供实现,项目名为study-user
加入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> <artifactId>study-user-api</artifactId> <groupId>com.mmc</groupId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
配置文件
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
写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; }
}
三、创建交易工程
新建一个module,项目名为study-trade
引入pom依赖
<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>
编写配置文件
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
写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+"下单成功"; }
}
启动类配置启用feign注解
@SpringBootApplication
@EnableFeignClients(basePackages = "com.mmc.user")
public class TradeApplication {
public static void main(String[] args) { SpringApplication.run(TradeApplication.class); }
}
测试
依次启动eureka Server,user工程,trade工程。输入网址测试
http://localhost:8005/trade/testTrade/1
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Alibaba Sentinel 限流与熔断初探(技巧篇)
温馨提示:源码分析 Alibaba Sentinel 专栏开始连载,本文展示如何学习一个全新的技术的方法。该专栏基于 1.7.0 版本。 在学习一个新技术或新框架时,建议先查看其官方文档, Sentinel 官方文档链接如下:官方文档,以获得对其形成一个整体的认识。 1、Sentinel 是什么 ?主要能解决什么问题? 按照官方的定义,Sentinel 意为分布式系统的流量防卫兵,主要提供限流、熔断等服务治理相关的功能。 服务的动态注册、服务发现是 SOA、微服务架构体系中首先需要解决的基本问题,服务治理是 SOA 领域又一重要课题,而 dubbo 框架只提供了一些基本的服务治理能力,例如限制服务并发调用数、配置合适的业务线程数量等,但熔断相关的功能就涉及的较少。 Sentinel 将作为 Dubbo 生态的重要一员,将集中解决服务治理相关的课题,服务限流与熔断又是服务治理首先要解决的课题。 那什么是限流与熔断呢? 限流:我们通常使用TPS对流量来进行描述,限流就是现在服务被调用的并发TPS,从而对系统进行自我保护。 熔断:就是当系统中某一个服务出现性能瓶颈是,对这个服务的调用进行快速...
- 下一篇
哀悼日网站全站变灰代码,最简单的还是ng这种方式...
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 一般在清明节,全国哀悼日,大地震的日子,以及一些影响力很大的伟人逝世或纪念日的时候,身为站长的我们都会让自己的网站的全部网页变成灰色(黑白色),以表示我们对逝者的悼念。 那么今天就说说,通过几行简单的代码,来实现这个功能。 第一种:修改CSS文件 我们可以在网页的CSS文件中添加以下的CSS代码,来实现网页黑白色,也就是网站变灰。 代码 html { filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(100%); } 第二种:在网页的标签内加入以下代码 如果你不想改动CSS文件,你可以通过在网页头部中的标签内部加入内联CSS代码的形式实现网站网页变灰。 代码 <style type="text/css"> html { filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程