谷粒商城基础篇0-44集( 四 )


但是我们的前端是8001,而后端是不用的接口,所以会报跨域的错误,因此我们可以直接使用,来进行统一的跨域的处理 。
我们在项目里新创建一个模块,就是网关模块 。
也是项目 。
也进行配置nacos,命名空间,文件配置等等
1). 去除的引入
但是我们这个模块也需要里面的nacos的依赖,但是里面也是包括mp的一些配置,如果我们没有配置数据库的的话就会报错,那么我可以在的启动类上加上注解 。
然后我们前端的监听的端口号就要进行修改 我网关的端口号就是88
2). 修改的yml的负载
spring:cloud:nacos:discovery:server-addr: 127.0.0.1:8848gateway:routes:- id: test_routeuri: https://www.baidu.compredicates:- Query=url,baidu- id: qq_routeuri: https://www.qq.compredicates:- Query=url,qq# 注意这个是有顺序的 如果上面的接收到了就不会走到下面的那些路由的规则#product的路由- id: product_routeuri: lb://gulimall-productpredicates:# 如果你访问的是/api/product/....什么的- Path=/api/product/**filters:# 进行路径重写 只要product以及后面的把api进行截取了# 然后重载到uri的服务里面去 去找这个method请求- RewritePath=/api(?>/?.*),/$\{segment}# 这个就是整合第三方服务- id: third_party_routeuri: lb://gulimall-third-partypredicates:# 如果是/api/thirdparty/...什么请求- Path=/api/thirdparty/**filters:#- 逗号前面的截取掉- RewritePath=/api/thirdparty/(?>/?.*),/$\{segment}- id: admin_routeuri: lb://renren-fastpredicates:- Path=/api/**filters:- RewritePath=/api(?>/?.*),/renren-fast/$\{segment}#前端项目,,/apiapplication:name: gulimall-gatewayserver:port: 88
例子:就比如我们第三方服务
3). 统一跨域处理
这个是固定的统一做了跨域处理 就不用在每个上面加上@
package com.atguigu.gulimall.gateway.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import org.springframework.web.cors.reactive.CorsWebFilter;import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;@Configurationpublic class GulimallCorsConfiguration {@Beanpublic CorsWebFilter corsWebFilter(){UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration = new CorsConfiguration();//1、配置跨域corsConfiguration.addAllowedHeader("*");corsConfiguration.addAllowedMethod("*");corsConfiguration.addAllowedOrigin("*");corsConfiguration.setAllowCredentials(true);source.registerCorsConfiguration("/**",corsConfiguration);return new CorsWebFilter(source);}}
最终进行登录的测试看是否能调用到我们的-admin的接口
1.8.的远程调用
在-服务里面的里面创建新的一个方法,来从-里面调用这个方法
那么我们在写在-里面
我们在服务里面进行调用
下面使用自动装配的方式来实现