SpringCloud保姆级搭建教程四---Gateway

1、gateway干嘛用的呢?

答,系统保安,所有想访问系统的请求都要通过gateway

2、来吧,开始吧。第一步,创建个模块,就叫gateway。创建模块的步骤,前面都贴过图哦

3、添加依赖,在gateway模块中添加nacos和gateway的依赖添加进去,但是发现gateway,又让输入版本号。那就还是父工程没有呗,那就把版本号升高点,或者直接百度查一下,然后试就完了。我这里是用的这几个版本,我也不知道对不对,反正就是不报错,在我这,不错就是对。

gateway pom.xml

父工程 pom.xml

4、依赖加完了,那就写启动类,加注解

5、创建application.yml 写配置信息

来吧,启动一下吧,看看nacos里面有没有。真不错,有了。

6、接下来就是测试呗,配置文件中的路由部分,也就是routes下面写的,已经将bigson和smallson绑定在了gateway上,现在只需要将端口号改成gateway的,就能访问到这俩服务的接口了(都显示小儿子是因为上一节的feign中,bigson调用了smallson的方法)

7、GOOD!!!成功了。但是,网关怎么可能只是这么点用呢?你上微机课老师是不是要检查你身上有没有违禁物品,是不是还要给你戴上鞋套,gateway也可以。接下来就说,gateway的过滤器

三种,分别是,

局部过滤器 filters

全局过滤器 default-filters

自定义过滤器

第一种:局部过滤器

注意缩进哈,这个就是局部过滤器,只给访问bigson的请求,添加请求头和响应头

第二种:全局过滤器

给所有经过网关的请求添加请求头

第三种:自定义过滤器

实现GlobalFilter,重写filter方法,进行自定义操作,想干嘛随你的便。比如,查验请求头中是否携带token

你可能还看到了实现了另一个类,Ordered,重写了getOder方法,这是干嘛的呢?排序的!客官请看:

过滤器总结:

8、过滤器说完了,还能干嘛呢?配置跨域。嗯,是这样的,咱继续

gateway配置示例:

server:
  port: 8060

spring:
  application:
    name: mall-gateway
  cloud:
    nacos:
      server-addr: 192.168.56.100:8848
    gateway:
      #跨域处理,需要关闭具体微服务上的跨域设置,否则此设置无效
      globalcors: # 全局的跨域配置
        add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
          # options请求 就是一种询问服务器是否浏览器可以跨域的请求
          # 如果每次跨域都有询问服务器是否浏览器可以跨域对性能也是损耗
        # 可以配置本次跨域检测的有效期maxAge
        # 在maxAge设置的时间范围内,不去询问,统统允许跨域
        corsConfigurations:
          '[/**]':
            allowedOriginPatterns: # 允许哪些网站的跨域请求
              - "*"
            allowedMethods: # 允许的跨域ajax的请求方式
              - "GET"
              - "POST"
              - "DELETE"
              - "PUT"
              - "OPTIONS"
            allowedHeaders: "*"    # 允许在请求中携带的头信息
            allowCredentials: true    # 允许在请求中携带cookie
            maxAge: 360000            # 本次跨域检测的有效期(单位毫秒)
            # 有效期内,跨域请求不会一直发option请求去增大服务器压力
      routes:
        - id: route-baidu-demo
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu
        #请求转发到商品模块,注意路由配置先后顺序,gateway默认按照配置顺序进行断言匹配
        - id: mall-product-route
          uri: lb://mall-product
          predicates:
            - Path=/app/product/**
          filters:
            - RewritePath=/app/(?<segment>/?.*), /$\{segment}
        #请求转发到renren-fast模块
        - id: renren-fast-route
          # 负载均衡请求转发至对应服务,需要添加负载均衡依赖,否则前端报503错误
          uri: lb://renren-fast
          predicates:
            # 当请求第一个路径为app时,转发给renren后端服务
            - Path=/app/**
          filters:
            # 将请求路径中的app改成renren-fast,从而可以让人人后台正常接收请求
            - RewritePath=/app/(?<segment>/?.*), /renren-fast/$\{segment}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当涉及到 Vue DHTMLX-Gantt 导出 Excel 的保姆完整教程时,以下是一步一步的指南: 1. 确保您的项目中已经安装了 Vue 和 DHTMLX-Gantt。如果尚未安装,请使用以下命令进行安装: ```bash npm install vue dhtmlx-gantt ``` 2. 在您的 Vue 组件中引入所需的库和样式: ```javascript import 'dhtmlx-gantt'; import 'dhtmlx-gantt/codebase/dhtmlxgantt.css'; ``` 3. 创建一个 Vue 组件,并在模板中添加一个 Gantt 图表和一个按钮: ```html <template> <div ref="ganttContainer" style="width: 100%; height: 600px;"></div> <button @click="exportData">导出 Excel</button> </template> <script> import * as XLSX from 'xlsx'; import FileSaver from 'file-saver'; export default { mounted() { const ganttContainer = this.$refs.ganttContainer; gantt.init(ganttContainer); // 设置 Gantt 图表的配置和数据 // 示例数据 const tasks = [ { id: 1, text: '任务1', start_date: '2022-01-01', duration: 5, progress: 0.5 }, { id: 2, text: '任务2', start_date: '2022-01-06', duration: 4, progress: 0.2 }, // 其他任务... ]; gantt.parse({ data: tasks }); }, methods: { exportData() { const gantt = this.$refs.ganttContainer.$gantt; const tasks = gantt.getDatastore('task').getItems(); // 将任务数据转换为 Excel 数据格式 const data = tasks.map((task) => { return { id: task.id, text: task.text, start_date: task.start_date, duration: task.duration, progress: task.progress, }; }); // 创建 Excel 文件 const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'Gantt Data'); const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); const excelData = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); // 下载 Excel 文件 FileSaver.saveAs(excelData, 'gantt_data.xlsx'); }, }, }; </script> <style> /* 可选的样式 */ </style> ``` 4. 在上述示例代码中,需要注意以下部分: - 在 `mounted` 钩子中,使用 `gantt.init(ganttContainer)` 初始化 Gantt 图表,并根据您的需求设置其配置和数据。 - `exportData` 方法用于将 Gantt 图表数据导出到 Excel。确保在 `exportData` 方法中的 `this.$refs.ganttContainer.$gantt` 是对 Gantt 图表组件的正确引用。 - 点击 "导出 Excel" 按钮时,将会生成一个名为 `gantt_data.xlsx` 的 Excel 文件,其中包含了 Gantt 图表的数据。 这就是使用 Vue DHTMLX-Gantt 导出 Excel 的保姆完整教程。希望对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值