Spring Cloud(微服务)学习篇(四)
Spring Cloud(微服务)学习篇(四)
1.nacos实现服务之间传参数
1.1 在dto包(shop-sms-api项目)中创建SmsDTO类
package com.zlz.shop.sms.api.dto;import lombok.Data;@Data
public class SmsDTO {private String tel;
}
1.2 复制SmsDTO类到shop-sms-server项目的dto包下面

1.3 更新SmsController类
1.3.1 加入如下代码
//演示传参数@RequestMapping("send2")public String send2(@RequestBody SmsDTO dto){log.info("执行短信发送 本次程序端口:{},发送的号码是:{}",port,dto.getTel());return "执行短信发送 本次程序端口:{}"+port;}
1.3.2 完整的smsController类代码
package com.zlz.controller;import com.zlz.dto.SmsDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@Slf4j
public class SmsController {@Value("${server.port}")private String port;@RequestMapping("send")public String send(){/*其中{}是输入后面就port的,里面可以有多个*/log.info("执行短信发送 本次程序端口:{}",port);return "执行短信发送 本次程序端口:{}"+port;}//演示传参数@RequestMapping("send2")public String send2(@RequestBody SmsDTO dto){log.info("执行短信发送 本次程序端口:{},发送的号码是:{}",port,dto.getTel());return "执行短信发送 本次程序端口:{}"+port;}
}
1.4 更新SmsService接口
1.4.1 加入的代码
@RequestMapping("send2")
//可以不写requsestBody
String send2(SmsDTO dto);
1.4.2 完整的SmsService接口代码
package com.zlz.shop.sms.api.service;
import com.zlz.shop.sms.api.dto.SmsDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;//一个服务对应一个接口,api是给别人的
@FeignClient("shop-sms") //填写注册中心微服务的名称,这里与application中的yml文件(server那里的)中的application.name名字一致
public interface SmsService {//根据定义的控制器方法来写接口,和server里面的SmsController是保持一致的@RequestMapping("send")String send();@RequestMapping("send2")//可以不写requsestBodyString send2(SmsDTO dto);
}
1.5 对shop-sms-api项目再次打包(install),因为里面数据变动了
1.5.1 双击install按钮

1.5.2 打包成功后的界面

1.6 启动端口号为8021的短信服务

1.7 更新UserController类
1.7.1 加入的代码
@RequestMapping("test3")public String t3(String tel){SmsDTO smsDTO = new SmsDTO();smsDTO.setTel(tel);String s=smsService.send2(smsDTO);return "用户服务调用短信服务 结果:"+s;}
1.7.2 完整的UserController类代码
package com.zlz.controller;import com.zlz.shop.sms.api.dto.SmsDTO;
import com.zlz.shop.sms.api.service.SmsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;@RestController
public class UserController {@AutowiredRestTemplate restTemplate;@RequestMapping("test")public String t(){//http://shop-sms/sendString s=restTemplate.postForObject("http://shop-sms/send", null, String.class);
// String s=restTemplate.postForObject("http://127.0.0.1:8021/send", null, String.class);return "用户服务调用短信服务 结果:"+s;}//使用oepnFeign的方式发送短信@AutowiredSmsService smsService;@RequestMapping("test2")public String t2(){//http://shop-sms/sendString s=smsService.send();return "用户服务调用短信服务 结果:"+s;}@RequestMapping("test3")public String t3(String tel){SmsDTO smsDTO = new SmsDTO();smsDTO.setTel(tel);String s=smsService.send2(smsDTO);return "用户服务调用短信服务 结果:"+s;}
}
1.8 测试
1.8.1 启动用户服务

1.8.2 访问127.0.0.1:8010/test3后的界面

1.8.3 访问127.0.0.1:8010/test3后,控制台(短信服务)的打印信息

相关文章:
Spring Cloud(微服务)学习篇(四)
Spring Cloud(微服务)学习篇(四) 1.nacos实现服务之间传参数 1.1 在dto包(shop-sms-api项目)中创建SmsDTO类 package com.zlz.shop.sms.api.dto;import lombok.Data;Data public class SmsDTO {private String tel; }1.2 复制SmsDTO类到shop-sms-server项目的dto包下面 1.3 …...
【Java Pro】001-Java基础:面向对象
【Java Pro】001-Java基础:面向对象 文章目录【Java Pro】001-Java基础:面向对象一、面向对象1、什么是对象现实生活中的对象与程序中的对象2、什么是面向对象面向过程面向对象3、面向过程与面向对象的比较思想方面设计方式方面实现方式方面4、面向过程与…...
ElasticSearch从0到1——基础知识
1.ES是什么? 是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能&…...
【面试系列】equals和==的区别
问题:两个对象值相同(x.equals(y) true),但是可能存在hashCode不同吗? 的定义 比较的是两个对象的内存地址,相等则意味着内存地址一样。 对象的equals方法 Object#equals public boolean equals(Object obj) {return (this obj);}Stri…...
存在重复元素模块-三道题
文章目录存在重复元素217. 存在重复元素219. 存在重复元素 II220. 存在重复元素 III (SortedList二分)小结存在重复元素 217. 存在重复元素 题目链接:217. 存在重复元素 题目大意:给你一个整数数组 nums 。如果任一值在数组中出…...
3种方法删除7-Zip压缩包的密码
7-Zip压缩软件是一款完全免费且开源的软件,不仅能压缩和解压7-Zip压缩包,还能给压缩包设置打开密码。 有些小伙伴可能会遇到这样的问题,7-Zip压缩包设置密码后,过了一段时间不需要密码保护了,或者一不小心忘记了密码&…...
Codeforces Round 855 (Div. 3)(A~F)
A. Is It a Cat?定义满足条件的字符串为:其中仅可能含有meow四种字母的大小写,而且相同种类的字母必须挨在一起,四种字母的顺序必须按照meow排列。给出一个字母串,求是否满足条件。思路:感觉是个很麻烦的模拟。首先把…...
【SpringCloud】SpringCloud详解之Feign实战
目录前言SpringCloud Feign远程服务调用一.需求二.两个服务的yml配置和访问路径三.使用RestTemplate远程调用(order服务内编写)四.使用Feign远程调用(order服务内配置)五.自定义Feign配置(order服务内配置)六.Feign配置日志(oder服务内配置)七.Feign调优(order服务内配置)八.抽…...
tuts4you上lena‘s40个crackme(1)
本来是不打算写文章了,因为懒,想以后通过录屏的形式保存一下自己学的路程。但奈何开学后一直没找到机会,在宿舍也不愿意大吼大叫的讲东西,只好再写写文章了 最近学了一些汇编语言和逆向工程,所以就想通过这40给题目来看…...
研讨会回顾 | Perforce版本控制工具Helix Core入华十年,携手龙智赋能企业大规模研发
2023年2月28日,龙智联合全球领先的数字资产管理工具厂商Perforce共同举办Perforce on Tour网络研讨会,主题为“赋能‘大’研发,助力‘快’交付”。 作为Perforce Helix Core产品在中国地区的唯一授权合作伙伴,龙智董事长何明女士为…...
C++ vscode 开发环境搭建
C vscode 开发环境搭建 笔记内容: C vscode 开发环境搭建准备了解g命令编译调试掌握使用launch.json和tasks.json配置文件编译调试了解使用cmake构建 git: https://github.com/weichangk/hellocpp/tree/master/vscodecmakecpp 环境搭建准备 安装vscode安装qt&a…...
ANR系列(二)——ANR监听方案之SyncBarrier
前言 在项目中经常遇到了手机假死问题,无规律的偶现问题,大量频繁随机操作后,便会出现假死,整个应用无法操作,不会响应事件,会发生各种奇怪的ANR,且trace不固定。而SyncBarrier是其中的罪魁祸首…...
【完美解决】应用程序无法正常启动(0xc000007b)请单击“确定”关闭应用程序
年期安装CorelDRAW X8 (64-Bit),安装完成之后运行一点毛病都没有,可是过了两三个月,再打开就出现“应用程序无法正常启动(0xc000007b)请单击“确定”关闭应用程序”这个提示框,如下图示 出现这个问题我就上网查找,无非…...
.NET基础加强第二课--静态成员,静态类
类 实例类 默认是实例类 静态类 在类前加上static ,就是静态类 静态类中,所有包含的成员必须是静态成员 实例成员是属于具体某个对象的 举例代码 Person p1 new Person(); p1.Age 20; p1.Name “张三”; class Person { public string Name { get; set;…...
【UML+OOPC嵌入式C语言开发】使用C语言实现一个面向对象语言才能够实现的类
文章目录简述OOPC开发环境知识讲解函数示例类的实现示例接口实现示例(前面两部分有点无聊,如果大家没兴趣看可以直接从知识讲解开始看) 简述OOPC oopc,是一种轻量级的面向对象的C语言编程框架, LW_OOPC是Light-Weight …...
软件测试自动化Java篇【Selenium+Junit 5】
文章目录Selenium环境部署自动化测试例子常见的元素操作窗口等待浏览器的操作弹窗选择器执行脚本文件上传浏览器参数Junit 5导入依赖Junit 4 和 Junit5 注解对比断言测试顺序参数化单参数多参数动态参数测试套件指定类来运行测试用例指定包名来运行包下测试用例Selenium 为什么…...
Clip:学习笔记
Clip 文章目录Clip前言一、原理1.1 摘要1.2 引言1.3 方法1.4 实验1.4.1 zero-shot Transfer1.4.2 PROMPT ENGINEERING AND ENSEMBLING1.5 局限性二、总结前言 阅读论文: Learning Transferable Visual Models From Natural Language Supervision CLIP 论文逐段精读…...
STM32CubexMX与FreeRTOS学习
目录 LED与EXTI配置 基本定时器使用 软件定时器 在HAL库中实现printf 重点--记得自己添加头文件 队列实现 二值信号量实现 计数信号量实现 DMA实现 ADC配置 RTC配置 看门狗 窗口看门狗 FreeRTOS结合MX软件开发,基础配置直接生成,我们只…...
Master Slave 主从同步错误 Slave_IO_Running:NO/Slave_SQL_Running: No
Master Slave 主从同步错误 Slave_IO_Running:NO Slave_SQL_Running:Yes #在Slave库上查看状态 mysql> show slave status\G Slave_IO_Running: No Slave_SQL_Running: Yes #重启master库:service mysqld restart mysql> show master status; ------------…...
JavaScript函数之prototype原型和原型链
文章目录1. 原型2. 显式和隐式原型3. 原型链3.1 访问顺序4. instanceof4.1 如何判断1. 原型 函数的prototype属性 每个函数都有一个prototype属性,它默认指向一个Object空对象(即:原型对象)。原型对象中有一个属性constructor&a…...
XUnity.AutoTranslator IL2CPP兼容性深度解析:从诊断到根治的终极指南
XUnity.AutoTranslator IL2CPP兼容性深度解析:从诊断到根治的终极指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏自动翻译的标杆工具,在5…...
医学影像处理实战:用Python实现Marching Cubes算法重建CT扫描数据
医学影像处理实战:用Python实现Marching Cubes算法重建CT扫描数据 在医学影像处理领域,三维重建技术正逐渐成为临床诊断和科研分析的重要工具。想象一下,当医生面对一堆二维CT切片时,如何快速构建出患者骨骼或器官的三维模型&…...
OpenClaw+Qwen3-32B-Chat镜像:3种模型接入方案对比实测
OpenClawQwen3-32B-Chat镜像:3种模型接入方案对比实测 1. 为什么需要测试不同接入方案? 去年冬天,当我第一次在本地部署OpenClaw时,最头疼的问题就是如何选择模型接入方式。作为个人开发者,既希望获得稳定的AI能力&a…...
从语音中读懂情绪:Awesome Machine Learning情感分析实践指南
从语音中读懂情绪:Awesome Machine Learning情感分析实践指南 【免费下载链接】awesome-machine-learning josephmisiti/awesome-machine-learning: 一个包含各种机器学习和深度学习资源的列表,包括算法、工具和库等。适合机器学习和深度学习开发者参考和…...
OpenClaw团队协作版:ollama-QwQ-32B支持多用户任务隔离实践
OpenClaw团队协作版:ollama-QwQ-32B支持多用户任务隔离实践 1. 为什么我们需要团队协作版的OpenClaw 去年我带领一个5人内容团队时,遇到了一个典型问题:每个人都想用AI自动化处理日常工作,但共享同一套系统会导致文件混乱、任务…...
深度解析so-vits-svc声压级标准化:提升语音转换质量的实用指南
深度解析so-vits-svc声压级标准化:提升语音转换质量的实用指南 【免费下载链接】so-vits-svc 项目地址: https://gitcode.com/gh_mirrors/sov/so-vits-svc so-vits-svc作为当前最流行的AI语音转换工具,声压级标准化是确保音频质量一致性的核心技…...
完整环视系统搭建指南:从零开始快速实现车辆360度全景视图
完整环视系统搭建指南:从零开始快速实现车辆360度全景视图 【免费下载链接】surround-view-system-introduction 项目地址: https://gitcode.com/gh_mirrors/su/surround-view-system-introduction 想要为你的车辆实现专业的360度环视系统吗?sur…...
通信网络升级与算力基建驱动,稳增前行:全球光纤光缆油膏2026-2032年CAGR4.2%,2032年锚定3.15亿美元
QYResearch调研显示,2025年全球光纤光缆油膏市场规模大约为2.37亿美元,预计2032年将达到3.15亿美元,2026-2032期间年复合增长率(CAGR)为4.2%。产品定义:精细配方,保障性能光纤油膏,简…...
探索Comsol复现六角晶格光子晶体四重简并狄拉克点零折射率现象
comsol能带复现 六角晶格光子晶体四重简并狄拉克点零折射率 在光子晶体的奇妙世界里,六角晶格光子晶体因其独特的光学性质备受关注,尤其是其中的四重简并狄拉克点零折射率现象,更是充满了魅力。而Comsol作为一款强大的多物理场仿真软件&#…...
2026.03.25(第一天)
练习题 1 答案 #include <stdio.h> int main() {int m;scanf("%d", &m);int k 2;while (k < m && (m % k))/************found************/k;/************found************/if (m k )printf("YES\n");elseprintf("NO\n&quo…...
