欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用springcloud的gateway路由组件

程序员文章站 2022-07-05 16:44:02
使用springcloud 的gateway路由组件之前做微服务的项目都是使用nginx来进行请求转发匹配,最近了解了springcloud的路由Gateway组件也可以实现请求转发匹配功能,就记录下如何使用Gateway创建springboot项目创建aplication.properties文件添加配置nacos注册中心的信息并且端口配置为88,以后我们前端调用接口使用localhost:88他可以自动根据url的匹配规则帮助我们调用不同模块的接口spring.cloud.nacos.disco...

使用springcloud 的gateway路由组件

之前做微服务的项目都是使用nginx来进行请求转发匹配,最近了解了springcloud的路由Gateway组件也可以实现请求转发匹配功能,就记录下如何使用Gateway

创建springboot项目

创建aplication.properties文件添加配置nacos注册中心的信息并且端口配置为88,以后我们前端调用接口使用localhost:88他可以自动根据url的匹配规则帮助我们调用不同模块的接口

spring.cloud.nacos.discovery.server-addr=47.95.117.172:8848
spring.application.name=wjsmall-gateway
server.port=88

创建aplication.yml文件添加路由匹配规则配置

spring:
  cloud:
    gateway:
      routes:
        - id: admin_route #这个id可以随便取
          uri: lb://renren-fast #这个是你的在注册中心的微服务名称
          predicates:
            - Path=/api/** #这个代表有/api之后就会变成上面uri的路径
          filters:
            - RewritePath=/api/(?<segment>.*),/renren-fast/$\{segment} 
 #这个是路径重写,因为我们使用/api/**路径的话他会变成/api/renren-fast因为我们不需要前面的/api所有重写url将前面的/api去掉

然后再启动类加入@EnableDiscoveryClient注解添加到注册中心之后就可以使用路由组件了

gateway还支持跨域配置

一般我们在开发的时候因为使用前后端分离会遇到很多的跨域问题,我们可以使用gateway配置跨域问题

创建一个MyCorConfiguration配置类

@Configuration
public class MyCorConfiguration {

    @Bean
    public CorsWebFilter corsWebFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

        CorsConfiguration corsConfiguration = new CorsConfiguration();

        /** 配置跨域 */
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.addAllowedOrigin("*");
		/** 这个代表允许设置头信息,没有这个头信息会没有值**/
        corsConfiguration.setAllowCredentials(true);

        source.registerCorsConfiguration("/**",corsConfiguration);
        return new CorsWebFilter(source);
    }
}

本文地址:https://blog.csdn.net/qq_40796604/article/details/112868626