zoukankan      html  css  js  c++  java
  • 【转】 SpringCloudAlibaba--07——gateWay

    【转】 SpringCloudAlibaba--07——gateWay

    参考地址:蚂蚁课堂

    * GateWay词汇表简介

    首先看下项目中配置时候的用法:

     官网上的介绍GateWay词汇表:(这是翻译成中文的)

    这三个就是GateWay的核心

    谓词:意思就是个转发的规则,比如介绍几种常用的谓词用法:

    * 谓词用法

    后路线谓词工厂:(在这个时间之后的都可以调转)

     前路线谓词工厂:

     主机路由谓词工厂:

     重量路线谓词工厂:

    * GateWay 工作原理

    找到这个源码:

     点进去第一行的配置源码,就可以看到源码里人家说的,如果有Servlet配置,就会直接报错

     * GateWay解决跨域问题

     微服务中的跨域问题,不属于前端解决!核心在我们后端

    虽然@CrossOrigin 注解可以解决跨域问题,但如果有很多个控制层的类,就很不方便了。

    解决办法有很多种,比较靠谱的话,用Nginx吧

    Nginx解决跨域性问题要保持域名和端口号一致,还可以通过配置文件解决跨域问题,

    不过更好的办法使用Filter,要在网关上配置Filter,而不是在每个服务里配置,这样就可以解决了

    @Component
    public class CrossOriginFilter implements GlobalFilter {
        @Override
        public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
            ServerHttpRequest request = exchange.getRequest();
            ServerHttpResponse response = exchange.getResponse();
            HttpHeaders headers = response.getHeaders();
            headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN, "*");
            headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_METHODS, "POST, GET, PUT, OPTIONS, DELETE, PATCH");
            headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS, "true");
            headers.add(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS, "*");
            headers.add(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, "*");
            return chain.filter(exchange);
    
        }
  • 相关阅读:
    Gengxin讲STL系列——Set
    理解Python的With语句
    Python中Non-ASCII character 'xe7' in file的问题解决
    gnome-terminal的一些调整
    硬盘的CHS寻址
    Wiz发布cnblog笔记
    cygwin安装man手册
    linux命令行使用
    小步前进
    学习的感觉真好
  • 原文地址:https://www.cnblogs.com/Javastudy-note/p/13818366.html
Copyright © 2011-2022 走看看