10.01-10.09学习总结

Spring Cloud Alibaba

XML 复制代码
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>{project-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Nacos作为注册中心

1.引入依赖

XML 复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2. 配置 Nacos Server 地址

XML 复制代码
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

3.@EnableDiscoveryClient 注解开启服务注册与发现功能

java 复制代码
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }

}

4.应用命名

XML 复制代码
spring.application.name=gulimall-coupon

远程调用

1.引入open-feign
XML 复制代码
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
2.编写接口

方法签名一致,请求地址补全

java 复制代码
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
    @RequestMapping("/coupon/coupon/member/list")
    public R memberCoupons();
}
3.开启远程调用
java 复制代码
    @Autowired
    private CouponFeignService couponFeignService;
    @RequestMapping("/coupons")
    public R test(){
        MemberEntity memberEntity=new MemberEntity();
        memberEntity.setNickname("Elysia");
        R memberCoupons= couponFeignService.memberCoupons();

        return R.ok().put("member",memberEntity).put("coupons",memberCoupons.get("coupons"));
    }

Nacos作为配置中心

1.引入依赖

XML 复制代码
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

2.创建bootstrap.properties

XML 复制代码
spring.application.name=gulimall-coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848

3.添加一个数据集(Data Id)

gulimall-coupon.properties

默认规则,应用名.properties

4.动态获取配置

@RefreshScope:动态获取并刷新配置

配置中心的配置优先

java 复制代码
@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
    @Autowired
    private CouponService couponService;

    @Value("${coupon.user.name}")
    private String name;
    @Value("${coupon.user.age}")
    private String age;
    @RequestMapping("/test")
    public R test(){
        return R.ok().put("name",name).put("age",age);
    }
}

5.命名空间与分组

为某服务创建命名空间,依据不同环境创建分组 如开发环境dev

6. 同时加载多个配置集

XML 复制代码
spring.application.name=gulimall-coupon

spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=8d8f3314-bf89-4133-a39e-047178438384
spring.cloud.nacos.config.group=dev

spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

spring.cloud.nacos.config.ext-config[2].data-id=other.yml
spring.cloud.nacos.config.ext-config[2].group=dev
spring.cloud.nacos.config.ext-config[2].refresh=true

GateWay

功能:路由转发,权限校验,限流控制

工作方式

断言predicate

匹配请求的信息,如请求头和请求参数。判断请求路由到哪个服务

XML 复制代码
spring:
  cloud:
    gateway:
      routes:
        - id: route_test
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu

predicates断言数组

参数url=baidu时,转发到 uri: https://www.baidu.com

XML 复制代码
spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - After=2017-01-20T17:42:47.789-07:00[America/Denver]

请求需要在指定日期时间之后发出

过滤器Filter

在请求和响应到达之前或之后,进行处理

相关推荐
oneDay++11 分钟前
# IntelliJ IDEA企业版高效配置指南:从主题到快捷键的终极优化
java·经验分享·intellij-idea·学习方法
Jasmin Tin Wei19 分钟前
idea中的vcs不见了,如何解决
java·ide·intellij-idea
小虎卫远程打卡app41 分钟前
视频编解码学习十二之Android疑点
学习·视频编解码
岁岁岁平安1 小时前
Vue3学习(组合式API——reactive()和ref()函数详解)
前端·javascript·vue.js·学习·vue3·reactive·ref
Java程序员-小白1 小时前
使用java -jar命令指定VM参数-D运行jar包报错问题
java·开发语言·jar
Camellia03111 小时前
嵌入式学习--江协51单片机day6
嵌入式硬件·学习·51单片机
ClearViper32 小时前
Java的多线程笔记
java·开发语言·笔记
m0_738206542 小时前
嵌入式学习的第二十一天-数据结构-双向链表
学习
全栈凯哥2 小时前
Java详解LeetCode 热题 100(17):LeetCode 41. 缺失的第一个正数(First Missing Positive)详解
java·算法·leetcode
神经毒素2 小时前
WEB安全--Java安全--LazyMap_CC1利用链
java·开发语言·网络·安全·web安全