SpringBoot整合SpringCloud框架
Spring Cloud : 是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造*,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
本文主要讲的是整合方面的东西,所以springcloud讲的不深
1.创建一个空项目,里面加入下面的子模块:
-
eureka-server,只需要勾选下面的场景:
然后创建一个application.yml,写下面的配置内容:
server: port: 8761 eureka: instance: hostname: eureka-server # eureka实例的主机名 client: register-with-eureka: false #不将自己注册到eureka上 fetch-registry: false #不从eureka上来获取服务的注册信息 service-url: defaultZone: http://localhost:8761/eureka/
然后在springBoot的启动类上标明下面的注解:
然后启动springBoot,然后浏览器地址栏*问http://localhost:8761/
即可看到下面的可是化的注册中心(由于还没注册服务,所以下面红色框框那个地方自然是空的)
-
provider-ticket 和 consumer-user 都需要下面的依赖:
先说provider-ticket:
在application.yml中写下面的配置:
server: port: 8001 spring: application: name: provider-ticket eureka: instance: prefer-ip-address: true #注册服务的时候使用服务的ip地址 client: service-url: defaultZone: http://localhost:8761/eureka/
书写下面的service:
package org.lzl.providerticket.service; import org.springframework.stereotype.Service; @Service public class TicketService { public String getTicket(){ System.out.println("8001"); return "卢泽龙最帅!"; } }
再书写下面的controller:
package org.lzl.providerticket.controller; import org.lzl.providerticket.service.TicketService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TicketController { @Autowired TicketService ticketService; @GetMapping("/ticket") public String getTicket(){ return ticketService.getTicket(); } }
然后启动这个springboot模块,这这个服务就被注册进去了。
consumer-user:
application.yml的配置信息如下:
spring: application: name: consumer-user server: port: 8200 eureka: instance: prefer-ip-address: true #注册服务的时候使用服务的ip地址 client: service-url: defaultZone: http://localhost:8761/eureka/
启动类加入下面的注解和bean:
controller如下:
package org.lzl.consumeruser.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; @RestController public class UserController { @Autowired RestTemplate restTemplate; @GetMapping("/buy") public String buyTicket(String name){ String s = restTemplate.getForObject("http://PROVIDER-TICKET/ticket",String.class); //第一参数写注册的服务名 第二个参数指定放返回的参数类型 return name+"告诉我:"+s; } }
然后也启动这个springboot的模块。
注上面三个模块都启动了,再看http://localhost:8761/ 页面
已经可以看到两个服务的信息了。
测试远程调用:访问http://localhost:8200/buy?name=zs
看到如下的结果则说明成功:
本文地址:https://blog.csdn.net/MoastAll/article/details/108246786
下一篇: java三大特性之多态性和面试题分析
推荐阅读
-
SpringBoot中整合knife4j接口文档
-
SpringBoot缓存详解并整合Redis架构
-
springboot整合freemarker模板
-
详解SpringBoot开发案例之整合定时任务(Scheduled)
-
SpringBoot整合Elasticsearch7.2.0的实现方法
-
SpringBoot整合UEditor的示例代码
-
搭建ssh框架的基本步骤(ssh框架整合实战教程)
-
完整SpringBoot Cache整合redis缓存(二)
-
详解mall整合SpringBoot+MyBatis搭建基本骨架
-
SpringBoot整合Redis、ApachSolr和SpringSession的示例