SpringCloud 2023.0.1

本文介绍如何使用 springboot3及cloud2023 进行微服务模块化开发

采用父-module 模块开发

父工程 demo-java

pom.xml

 <!--配置 springboot的依赖的版本号, 方便 module 进行继承--><dependencyManagement><dependencies><!--增加 springboot的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>3.2.5</version><type>pom</type><scope>import</scope></dependency>​<!--增加 springcloud的依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2023.0.1</version><type>pom</type><scope>import</scope></dependency>​​</dependencies></dependencyManagement>​​

子模块 cloud-eureka-server-7001

pom.xml

 ​<dependencies><!--增加 boot web的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>​<!--增加  eureka-server 的依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies>​

启动类:

 package com.ly;​import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;​@SpringBootApplication@EnableEurekaServerpublic class CloudEurekaServer7001 {public static void main(String[] args) {SpringApplication.run(CloudEurekaServer7001.class,args);}}​

配置文件 application.yml

 # 设置端口号为 7001server:port: 7001​​eureka:instance:hostname: localhostclient:fetch-registry: false    #如果fetch-registry为false, 则表示自己为注册中心register-with-eureka: false  #表示是否向eureka注册中心注册自己service-url:defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka   # 服务地址​​​​

启动测试:

子模块 cloud-eureka-provider-8001

pom.xml

 <dependencies><!--增加 boot web的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--增加 eureka client 依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--增加 监控 boot 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies>

启动类

 package com.ly;​import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;​​@SpringBootApplication@EnableDiscoveryClientpublic class EurekaProvider8001 {public static void main(String[] args) {SpringApplication.run(EurekaProvider8001.class,args);}}​

application.yaml

 ​#设置端口号server:port: 8001​​​eureka:client:fetch-registry: true #是提供者,不是注册中心 ,可省略register-with-eureka: true #向注册中心 注册服务,可省略service-url: #服务地址defaultZone: http://localhost:7001/eureka​​

刷新 之前的 server

如何 解决 unknow ?修改 provider-8001 的 yaml文件,增加 spring.application.name

为了 模拟 用户管理 ---provider8001 , 订单管理--provider8002, 消费者来 消费服务

子模块 cloud-eureka-common-api

pom.xml

  <dependencies><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies>

创建 实体层 User.java 与 OrderInfo.java

 package com.ly.entity;​​import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;​/*** 用户 实体*/@Data@AllArgsConstructor@NoArgsConstructor@ToStringpublic class User {private int userId; //用户编号private String username;//用户名private String phone;//电话}​
 package com.ly.entity;​import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.ToString;​import java.time.LocalDateTime;​/*** 订单 实体*/@Data@AllArgsConstructor@NoArgsConstructor@ToStringpublic class OrderInfo {private int orderNo;//订单编号private String title;// 标题private double price;//单价private double count;//个数private LocalDateTime time;//购买时间private int userId;// 用户编号}​

修改 provider8001 的 pom.xml

增加

 <!--引入  common-api module--><dependency><groupId>com.ly</groupId><artifactId>cloud-eureka-common-api</artifactId><version>1.0-SNAPSHOT</version></dependency>

为 provider8001 增加 controller

 package com.ly.controller;​import com.ly.entity.User;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;​/*** provider8001 --模拟的就是用户管理 模块*/@RestControllerpublic class UserController {​@GetMapping("/user/{id}")public User find(@PathVariable("id")int id){​// 模拟数据返回return  new User(1001,"李四","137526154875");}​​​​}​

启动 provider8001 进行测试

看到以上 截图表示 成功

子模块 eureka-provider-8002

pom.xml

  <dependencies><!--增加 boot web的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--增加 eureka client 依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!--增加 监控 boot 依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>​<!--引入  common-api module--><dependency><groupId>com.ly</groupId><artifactId>cloud-eureka-common-api</artifactId><version>1.0-SNAPSHOT</version></dependency>​</dependencies>

application.yaml

 ​#设置端口号server:port: 8002​​​eureka:client:fetch-registry: true #是提供者,不是注册中心 ,可省略register-with-eureka: true #向注册中心 注册服务,可省略service-url: #服务地址defaultZone: http://localhost:7001/eurekaspring:application:name: provider-8002        # 设置应用名, 注意, 值 不允许使用 下划线​

启动类

 package com.ly;​import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;​@SpringBootApplication@EnableDiscoveryClientpublic class EurekaProvider8002 {public static void main(String[] args) {SpringApplication.run(EurekaProvider8002.class,args);}}​

controller

 package com.ly.controller;​import com.ly.entity.OrderInfo;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;​import java.time.LocalDateTime;​/*** provider8002 模拟就是 订单管理 模块*/@RestControllerpublic class OrderInfoController {@GetMapping("/order/{userId}")public OrderInfo find(@PathVariable("userId")int userId){//模拟数据返回return new OrderInfo(1003,"保温杯",50,1, LocalDateTime.now(),1001);}}​

启动 provider8002, 测试 7001

子模块 cloud-eureka-consumer-80

pom.xml

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.ly</groupId><artifactId>cloud-eureka-common-api</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency></dependencies>

启动类

package com;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;@SpringBootApplication
@EnableDiscoveryClient
public class ConsumerApp80 {public static void main(String[] args) {SpringApplication.run(ConsumerApp80.class,args);}
}

配置文件

 ​#设置端口号server:port: 80​​eureka:client:fetch-registry: true #是提供者,不是注册中心 ,可省略register-with-eureka: false #向注册中心 不注册服务,因此 是消费服务的service-url: #服务地址defaultZone: http://localhost:7001/eurekaspring:application:name: consumer80      # 设置应用名, 注意, 值 不允许使用 下划线​

配置类 注入 RestTemplate

 package com;​​import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.client.RestTemplate;​/*** 配置类*/@Configurationpublic class MyConfig {​@Beanpublic RestTemplate restTemplate(){return new RestTemplate();}}​

controller

 package com.controller;​import com.ly.entity.OrderInfo;import com.ly.entity.User;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate;​@RestControllerpublic class TestController {​@Autowiredprivate RestTemplate restTemplate;​/*** 模拟查询 用户信息* @param id* @return*/@GetMapping("/user/{id}")public User queryUser(@PathVariable("id")int id){//访问 8001 获得 数据return restTemplate.getForObject("http://localhost:8001/user/1",User.class);​}​/*** 模糊查询订单* @param id* @return*/@GetMapping("/order/{id}")public OrderInfo queryOrder(@PathVariable("id")int id){//访问 8002 获得数据return restTemplate.getForObject("http://localhost:8002/order/3",OrderInfo.class);}​​}​

启动 consumer 进行 测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/325440.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宝塔安装多个版本的PHP,如何设置默认的PHP版本

如何将默认的PHP版本设置为7.3.32&#xff0c; 创建软链接指向7.3版本&#xff0c;关键命令&#xff1a;ln -sf /www/server/php/73/bin/php /usr/bin/php 然后再查看PHP版本验证一下结果 [rootlocalhost ~]# ln -sf /www/server/php/73/bin/php /usr/bin/php [rootlocalho…

zabbix“专家坐诊”第238期问答

问题一 Q&#xff1a;请问一下 zabbix 如何监控服务器端口的出和入流量?就类似iftop这样的。 A&#xff1a;可以用snmp去监控。 问题二 Q&#xff1a;各位有什么工具能导出zabbix主机列表成execl格式吗&#xff1f; A&#xff1a;进mysql&#xff0c;到hostid&#xff0c;然…

WEB后端复习——监听器、过滤器

Listener监听器 是Servlet规范中定义的一种特殊类&#xff0c;它用于监听web应用程序中的ServletContext, HttpSession和ServletRequest等域对象的创建与销毁事件&#xff0c;以及监听这些域对象中的属性发生修改的事件。 注解WebListener 1.ServletContextListener 监听Serv…

Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告

这篇文章主要介绍了Python3 Appium 安卓模拟器实现APP自动化测试并生成测试报告,本文给大家介绍的非常详细&#xff0c;对大家的学习或工作具有一定的参考借鉴价值&#xff0c;需要的朋友可以参考下 本文主要分为以下几个部分 安装Python3 安装Python3的Appium库 安装Andr…

K-CU12和利时工控单元

K-CU12和利时工控单元。控制策略组态&#xff0c;使用专用的组态软件 人机界面HMI设计&#xff1a;操作员站画面设计&#xff0c;使用专用的组态软件 K-CU12和利时工控单元文件组态 2文档管理软件 在工程师站上进行系统组态的主要工作&#xff1a; K-CU12和利时工控单元。系统配…

【全开源】Fastflow工作流系统(源码搭建/上线/运营/售后/维护更新)

一款基于FastAdminThinkPHP开发的可视化工作流程审批插件&#xff0c;帮助用户基于企业业务模式和管理模式自行定义所需的各种流程应用&#xff0c;快速构建企业自身的流程管控体系&#xff0c;快速融合至企业协同OA办公系统。 提供全部无加密服务端源码和前端源代码&#xff0…

如何在 Linux / Ubuntu 上下载和安装 JMeter?

Apache JMeter 是一个开源的负载测试工具&#xff0c;可以用于测试静态和动态资源&#xff0c;确定服务器的性能和稳定性。在本文中&#xff0c;我们将讨论如何下载和安装 JMeter。 安装 Java&#xff08;已安装 Java 的此步骤可跳过&#xff09; 安装 Java 要下载 Java&…

【计算机网络篇】数据链路层(10)在物理层扩展以太网

文章目录 &#x1f354;扩展站点与集线器之间的距离&#x1f6f8;扩展共享式以太网的覆盖范围和站点数量 &#x1f354;扩展站点与集线器之间的距离 &#x1f6f8;扩展共享式以太网的覆盖范围和站点数量 以太网集线器一般具有8~32个接口&#xff0c;如果要连接的站点数量超过了…

使用Three.js绘制快速而逼真的水

本文将利用GPUComputationRenderer来实现水波纹的绘制&#xff0c;相似的案例可以看threejs官方的GPGPU Water示例。更多精彩内容尽在数字孪生平台。 什么是 GPGPU GPGPU代表通用图形处理单元&#xff08;General-Purpose Graphic Processing Unit&#xff09;&#xff0c;意思…

从0开始linux(2)——热键、如何查阅手册

欢迎来到博主的专栏——从0开始linux 博主ID&#xff1a;代码小豪 博主使用的linux发行版&#xff1a;CentOS 7.6 文章目录 热键[Tab]热键Ctrl cshift[pageup]和[pagedown] 查阅手册\-\-help在线手册maninfo手册 热键 我们的命令行模式中存在很多的组合热键&#xff0c;这些按…

神经网络中的算法优化(皮毛讲解)

抛砖引玉 在深度学习中&#xff0c;优化算法是训练神经网络时至关重要的一部分。 优化算法的目标是最小化&#xff08;或最大化&#xff09;一个损失函数&#xff0c;通常通过调整神经网络的参数来实现。 这个过程可以通过梯度下降法来完成&#xff0c;其中梯度指的是损失函数…

利用“AnaTraf“网络流量分析仪轻松诊断和优化网络

网络性能监测和诊断(NPMD)是网络管理和优化的重要环节,准确快速地定位和排除网络故障对于保障业务正常运转至关重要。作为一款专业的网络流量分析设备,AnaTraf网络流量分析仪凭借其强大的流量分析和故障诊断功能,为网络管理者提供了一个高效的网络优化解决方案。 全面掌握网络…

计算机网络实验1:交换机基本配置管理

实验目的和要求 安装Packer Tracer&#xff0c;了解Packer Tracer的基本操作掌握交换机基本命令集实验项目内容 认识Packet Tracer软件 交换机的基本配置与管理 交换机的端口配置与管理 交换机的端口聚合配置 交换机划分Vlan配置 实验环境 硬件&#xff1a;PC机&#x…

体验MouseBoost PRO,让Mac操作更高效

还在为Mac的右键功能而烦恼吗&#xff1f;试试MouseBoost PRO for Mac吧&#xff01;这款强大的鼠标右键增强软件&#xff0c;能让你通过简单操作即可激活多种实用功能&#xff0c;让你的工作变得更加轻松。其高度定制化的设计&#xff0c;更能满足你的个性化需求。赶快下载体验…

【ubuntu】ubuntu-18.04开机卡在Starting User Manager for UID 120....问题解决方案

错误截图 解决方案 启动系统&#xff0c;开机界面单击按键esc键&#xff0c;注意需要将鼠标定位到菜单界面&#xff0c;移动键盘上下键选择Advanced options for Ubuntu 进入如下菜单&#xff0c;选择recovery mode 回车之后会弹出如下界面&#xff0c;选择如下root&#xff0…

瀚高数据库(HighGoDB)Windows安装使用

1.下载 2.安装 瀚高数据库下载与安装&#xff08;Windows版&#xff09;-CSDN博客 3.连接工具 4.建库、建表操作 瀚高数据库管理工具-CSDN博客 *报错Cant access non-default database&#xff0c;需要右键数据库-设为活动对象 5.导入外部数据&#xff08;迁移、对比&…

生信人写程序1. Perl语言模板及配置

生物信息领域常用语言 个人认为&#xff1a;是否能熟悉使用Shell(项目流程搭建)R(数据统计与可视化)Perl/Python/Java…(胶水语言&#xff0c;数据格式转换&#xff0c;软件间衔接)三门语言是一位合格生物信息工程师的标准。 生物信息常用语言非常广泛&#xff0c;我常用的有…

爱普生推出5G基站可用耐高温高稳定性温补晶振

爱普生推出了六款新的温补晶振型号:TG7050CKN&#xff0c;TG7050SKNTG7050CMN&#xff0c;TG7050SMN&#xff0c;TG-5510CA&#xff0c;TG-5511CA。这几款的特点就是耐高温温度可达105℃C高温&#xff0c;而且都是高稳定性温补晶振&#xff0c;而且都是7050尺寸&#xff0c;这个…

AVL 树的理解和简单实现

目录 1. AVL 树 1.1. AVL 树的概念 1.2. AVL 树的性质 2. AVL 树的框架如下 2. AVL树的 插入 2.1. 平衡因子的更新 2.2.1. 平衡因子更新的第一种情况 2.2.2. 平衡因子更新的第二种情况 2.2.3. 平衡因子更新的第三种情况 2.2.4. 平衡因子更新的代码框架如下 2.2. AV…

Centos 中如何汉化man命令

刚学Linux&#xff0c;记不住命令和选项&#xff0c;很依赖里面的 man 查看命令&#xff0c;但因为着实看不懂&#xff0c;有没有什么办法把man查看命令的信息改成中文 在CentOS 7中&#xff0c;你可以通过安装man-pages-zh包来获取中文的man手册。以下是具体的步骤&#xff1a…