尚硅谷-谷粒商城-个人学习笔记【服务构建篇】

整个项目需要用到的技术搭配方案:

在这里插入图片描述

引入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版权协议,转载请附上原文出处链接和本声明。