Spring Cloud(微服务)学习篇(三)
创始人
2025-05-28 19:39:17

Spring Cloud(微服务)学习篇(三)

1 nacos中使用openFeign(调用方式)实现短信发送

1.1 在shop-sms-api中创建com.zlz.shop.sms.api.service/vo/dto/util,目录结构如下所示

在这里插入图片描述

1.2 在pom.xml(shop-sms-api)中加入如下依赖

org.projectlomboklombokorg.springframework.cloudspring-cloud-starter-openfeign

1.3 在service包下创建SmsService接口

package com.zlz.shop.sms.api.service;
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();
}

1.4 把父项目(shop-sms)打包到本地仓库(只需要打包一次)

1.4.1 找到shop-sms项目➡双击install按钮

在这里插入图片描述

1.4.2 打包成功的界面

在这里插入图片描述

1.5 把子项目shop-sms-api打包到本地仓库

1.5.1 找到shop-sms-api项目➡双击install按钮

在这里插入图片描述

1.5.2 打包成功的界面

在这里插入图片描述

1.6 在子项目中shop-sms-server的pom.xml中引入短信验证模块

1.6.1 引入短信验证模块代码

 com.zlzshop-sms-api1.0

1.6.2 完整的pom.xml文件(shop-sms-server)如下所示


shop-smscom.zlz1.04.0.0shop-sms-apiorg.projectlomboklombokorg.springframework.cloudspring-cloud-starter-openfeign

1.7 在UserStart类中(shop-sms-server项目)加上注解

1.7.1 加入的注解代码

//开启openFeign
@EnableFeignClients

1.7.2 完整的UserStart类代码

package com.zlz;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;@SpringBootApplication
@EnableDiscoveryClient //开启服务的注册和发现
//开启openFeign
@EnableFeignClients
public class UserStart {public static void main(String[] args) {SpringApplication.run(UserStart.class);}//这个负载均衡不用管,是redisTemplate方式的@Bean@LoadBalanced //Ribbon 负载均衡public RestTemplate restTemplate(){return new RestTemplate();}}

1.8 变更UserController类

1.8.1 在里面加入如下代码

 //使用oepnFeign的方式发送短信@AutowiredSmsService smsService;@RequestMapping("test2")public String t2(){//http://shop-sms/sendString s=smsService.send();return "用户服务调用短信服务 结果:"+s;}

1.8.2 完整的UserController类

package com.zlz.controller;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;}
}

1.9 测试

1.9.1 打开nacos窗口

在这里插入图片描述

1.9.2 打开两个不同端口的短信服务

a 打开端口号为8021的短信服务

在这里插入图片描述

b 打开端口号为8022的短信服务

在这里插入图片描述

1.9.3 打开用户服务

在这里插入图片描述

1.9.4 首次访问127.0.0.1:8010/test2地址

在这里插入图片描述

1.9.5 再次访问127.0.0.1:8010/test2地址

在这里插入图片描述

相关内容

热门资讯

渠道涨价、终端稳价……娃哈哈、... 红星资本局6月28日消息,6月27日,娃哈哈集团(以下简称“娃哈哈”)官方微博发布针对近日网传娃哈哈...
AI“伪人”像鬼一样缠着女装 ... 订阅 快刀财经 ▲ 做您的私人商学院AI“伪人”批量入侵女装。作者: 槽值小妹来源: 槽值(ID...
越秀地产很忙,账本也是 越秀地... 文丨胡杨编辑丨百进来源丨正经社(ID:zhengjingshe)(本文约为3000字)5月,越秀地产...
搅乱一国!特朗普女婿海外捞钱,... 特朗普这家人真是太能害人了,就因为他的女儿女婿,东欧小国阿尔巴尼亚又彻底乱套了。整个6月份,阿尔巴尼...
好后悔没重仓!为什么买得最少的... 在投资过程中,许多人都有过类似的经历:真正重仓持有的股票涨幅平平,而那些因为犹豫只买了少许、甚至只是...