JAVA springboot ssm b2b2c多用户商城系统源码(三):服务提供与调用
上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册中心,搭建一个简单的服务端注册服务,客户端去调用服务使用的案例。
案例中有三个角色:服务注册中心、服务提供者、服务消费者,其中服务注册中心就是我们上一篇的eureka单机版启动既可,流程是首先启动注册中心,服务提供者生产服务并注册到服务中心中,消费者从服务中心中获取服务并执行。
服务提供
我们假设服务提供者有一个hello方法,可以根据传入的参数,提供输出“hello xxx,this is first messge”的服务
1、pom包配置
创建一个springboot项目,pom.xml中添加如下配置:
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>复制代码
2、配置文件
application.properties配置如下:
spring.application.name=spring-cloud-producer
server.port=9000
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/复制代码
参数在上一篇都已经解释过,这里不多说。
3、启动类
启动类中添加@EnableDiscoveryClient
注解
@SpringBootApplication
@EnableDiscoveryClient
public class ProducerApplication {public static void main(String[] args) {SpringApplication.run(ProducerApplication.class, args);}
}复制代码
4、controller
提供hello服务
@RestController
public class HelloController {@RequestMapping("/hello")public String index(@RequestParam String name) {return "hello "+name+",this is first messge";}
}复制代码
添加@EnableDiscoveryClient
注解后,项目就具有了服务注册的功能。启动工程后,就可以在注册中心的页面看到SPRING-CLOUD-PRODUCER服务。
到此服务提供者配置就完成了。
服务调用
1、pom包配置
和服务提供者一致
<dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>复制代码
2、配置文件
application.properties配置如下:
spring.application.name=spring-cloud-consumer
server.port=9001
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/复制代码
3、启动类
启动类添加@EnableDiscoveryClient
和@EnableFeignClients
注解。
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}}复制代码
@EnableDiscoveryClient
:启用服务注册与发现@EnableFeignClients
:启用feign进行远程调用
Feign是一个声明式Web Service客户端。使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注解。Feign也支持可拔插式的编码器和解码器。Spring Cloud对Feign进行了封装,使其支持了Spring MVC标准注解和HttpMessageConverters。Feign可以与Eureka和Ribbon组合使用以支持负载均衡。
4、feign调用实现
@FeignClient(name= "spring-cloud-producer")
public interface HelloRemote {@RequestMapping(value = "/hello")public String hello(@RequestParam(value = "name") String name);
}复制代码
- name:远程服务名,及spring.application.name配置的名称
此类中的方法和远程服务中contoller中的方法名和参数需保持一致。
5、web层调用远程服务
将HelloRemote注入到controller层,像普通方法一样去调用即可。
@RestController
public class ConsumerController {@AutowiredHelloRemote HelloRemote;@RequestMapping("/hello/{name}")public String index(@PathVariable("name") String name) {return HelloRemote.hello(name);}}复制代码
到此,最简单的一个服务注册与调用的例子就完成了。
整体代码结构如下:
完整项目的源码来源
转载于:https://juejin.im/post/5c3450e6e51d4552475fa99c
JAVA springboot ssm b2b2c多用户商城系统源码(三):服务提供与调用相关推荐
- JAVA springboot ssm b2b2c多用户商城系统源码:服务消费(基础)...
使用LoadBalancerClient 在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient.这里我们即将介绍的LoadBalance ...
- JAVA springboot ssm b2b2c多用户商城系统源码-SSO单点登录之OAuth2.0登录流程(2)
上一篇是站在巨人的肩膀上去研究OAuth2.0,也是为了快速帮助大家认识OAuth2.0,闲话少说,我根据框架中OAuth2.0的使用总结,画了一个简单的流程图(根据用户名+密码实现OAuth2.0的 ...
- JAVA springboot ssm b2b2c多用户商城系统源码(三)SpringBoot用JdbcTemplates访问Mysql
准备工作 jdk 1.8 maven 3.0 idea mysql 初始化mysql: -- create table `account` DROP TABLE `account` IF EXISTS ...
- (八)JAVA springcloud ssm b2b2c多用户商城系统源码:配置中心服务化和高可用
server端改造 1.添加依赖 <dependencies><dependency><groupId>org.springframework.cloud</ ...
- JAVA ssm b2b2c多用户商城系统源码 (十二)springboot集成apidoc
首先声明下,apidoc是基于注释来生成文档的,它不基于任何框架,而且支持大多数编程语言,为了springboot系列的完整性,所以标了个题. 一.apidoc简介 apidoc通过在你代码的注释来生 ...
- JAVA ssm b2b2c多用户商城系统源码
最近公司要开发商城,让我多方咨询,最后看了很多,要不就是代码.表字段注释不全,要不就是bug多,要么就是文档缺少,最后决定自己开发一套商城. 下面是开发的一些心得体会,权且记录下来,给自己做个记录把. ...
- JAVA b2b2c多用户商城系统源码-服务发现服务端EurekaServer微服务
一.大致介绍 1.众所周知,在现在互联网开发中,访问地址的IP和端口号是动态的,一个服务停掉再重新启用后IP和端口就可能发生了改变,所以用硬编码是肯定不行了.于是我们尝试使用新的技术来解决这一难题.需 ...
- JooLun B2B2C多用户商城系统源码—多终端,无加密,不限域名,专业二开
Uniapp是目前商城开发前端技术中的热门,Uniapp的大火让开发者和企业都很兴奋,对于uniapp开发的商城源码,优点非常明显,就是开发成本低,uniapp商城源码编写一套源代码就能打包成小程序. ...
- JAVA springcloud ssm b2b2c多用户商城系统-docker-hystrix-dashboard-turbine(九)
简介 spring cloud b2b2c电子商务社交平台源码请加企鹅求求:一零三八七七四六二六.Hystrix的主要优点之一是它收集关于每个HystrixCommand的一套指标.Hystrix仪表 ...
最新文章
- Bootstrap 简洁、直观、强悍、移动设备优先的前端开发框架,让web开发更迅速、简单。...
- MyBatis学习总结(一)——MyBatis快速入门
- postgresql 备份恢复(一)
- 数据科学竞赛-数据挖掘赛流程
- Google Maps API 初级2
- plot函数_R语言基础绘图函数散点图~跟着Nature Communications学画图~Figure1
- 米莱狄机器人怎么那么多_米莱狄究竟应该怎么玩?
- linux sftp 增加用户(centos)
- 6,EWF写保护功能介绍与使用
- 2021MySql-8.0.26安装详细教程(保姆级)
- RS422-RS485-RS232标准接线
- 技术图文:如何利用 C#+Echarts 绘制 Smoothed Line Chart?
- 计算机第四轮学科评估排名,最权威中国高校学科排名,全国第四轮学科评估结果出炉!...
- mysql where clause is ambiguous_mysql …in where clause is ambiguous
- 网页浏览flash时不停黑屏
- java的Map接口
- 轻量化网络:ShuffleNet v2解析
- 教学|3D建模之,游戏场景创建大致流程
- Ubuntu apt卸载
- 史上最强《Java 开发手册》泰山版王者归来!
热门文章
- databus mysql搭建_databus bootstrap 部署
- QT每日一练day5:QLabel和按钮窗口打印功能
- 视觉SLAM-显示相机的位姿
- html渲染json的插件,[ json editor] 如何在网页中使用Json editor 插件
- qq如何用其他进制登录
- java 类加载的机制面试题_java 类加载机制 阿里面试题
- C++socket编程(七):7.2 XHttp项目创建接收浏览器请求
- java 赋值md5_Hook Java API以获得MD5加密前数据
- 怎么把文件上传云服务器上,如何把文件上传到云服务器上
- qomo linux最新版本,“珠峰”Qomo Linux新版本将迎来重大变革