整个项目需要用到的技术搭配方案:
引入SpringCloud Alibaba
在common模块的pom文件中引入依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
dependencyManagement
引入依赖管理。以后再dependencies
中引入SpringCloudAlibaba相关依赖不用写版本号
SpringCloud Alibaba-Nacos
Nacos下载页下载完成后进入cmd进入bin目录,然后输入命令startup.cmd -m standalone 这里是将nacos以单机模式运行
- 在common模块下pom文件中引入nacos依赖:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
- 在coupon模块下application.yml文件中配置:
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
application:
name: gulimall-coupon
- 启动类中新增开启服务注册发现客户端注解
@EnableDiscoveryClient
- 启动后在nacos查看结果
SpringCloud-OpenFeign
coupon服务中写出需要被调用的接口
/**
* 测试OpenFeign
*/
@RequestMapping("/testOpenFeign")
public R memberCoupon() {
CouponEntity couponEntity = new CouponEntity();
couponEntity.setCouponName("满100-50");
return R.ok().put("coupons", Arrays.asList(couponEntity));
}
- 在调用者中引入OpenFeign依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- 编写接口,寓意这个接口需要调用远程服务
/**
* 这是一个声明式的远程调用
*/
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
@RequestMapping("/coupon/coupon/testOpenFeign")
R memberCoupons();
}
- 编写调用者接口
@Autowired
CouponFeignService couponFeignService;
@RequestMapping("/coupons")
public R test(){
MemberEntity memberEntity = new MemberEntity();
memberEntity.setNickname("张三");
R memberCoupons = couponFeignService.memberCoupons();
return R.ok().put("member",memberEntity).put("coupons",memberCoupons.get("coupons"));
}
- 主启动类新增
@EnableDiscoveryClient
注解 - 访问member下coupons接口,实则请求coupon服务中的/coupon/coupon/testOpenFeign接口
Nacos配置中心
给common中导入相关依赖
<!-- 配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
Resourse文件下创建bootstrap.properties
文件,指定注册中心地址于服务名称:
编写测试接口与在注册中心创建配置文件:
访问接口查看结果
这里优先级为bootstrap
、配置中心
、application
从配置中心同时加载多个配置集
Gateway
新建gulimall-gateway模块
结果:
版权声明:本文为qq_36357384原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。