千家信息网

springcloud整合gateway怎么实现网关

发表于:2024-11-14 作者:千家信息网编辑
千家信息网最后更新 2024年11月14日,这篇文章主要介绍了springcloud整合gateway怎么实现网关的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springcloud整合gateway怎么实现网关文
千家信息网最后更新 2024年11月14日springcloud整合gateway怎么实现网关

这篇文章主要介绍了springcloud整合gateway怎么实现网关的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springcloud整合gateway怎么实现网关文章都会有所收获,下面我们一起来看看吧。

1.项目目录:

创建项目gateway作为父类

2.代码实现:

父类依赖

        org.springframework.boot        spring-boot-starter-parent        2.6.2                 com.cxh    gateway    0.0.1-SNAPSHOT    gateway    Demo project for Spring Boot    pom            8        2021.1        2021.0.0                                            org.springframework.cloud                spring-cloud-dependencies                ${spring-cloud-dependencies.version}                pom                import                                        com.alibaba.cloud                spring-cloud-alibaba-dependencies                ${spring-cloud-alibaba-dependencies.version}                pom                import                        

创建module项目gateway-client

添加依赖

        com.cxh        gateway        0.0.1-SNAPSHOT                 com.cxh    gateway-client    0.0.1-SNAPSHOT    gateway-client    Demo project for Spring Boot            1.8                            org.springframework.boot            spring-boot-starter                            org.springframework.boot            spring-boot-starter-test            test                            org.springframework.boot            spring-boot-starter                            org.springframework.boot            spring-boot-starter-test            test                                    org.springframework.cloud            spring-cloud-starter-alibaba-nacos-discovery            0.2.1.RELEASE                                    org.springframework.cloud            spring-cloud-starter-openfeign                            org.springframework.boot            spring-boot-starter-web            

yml配置

server:  port: 8002spring:  application:    name: gateway-client #服务名  profiles:    active: dev #环境设置  cloud:    nacos:      discovery:        server-addr: 127.0.0.1:8848 #nacos服务注册

控制层

@RestControllerpublic class ClientController {    @Value("${server.port}")    private String port;    @RequestMapping("/index")    public String index(){        return "gateway-client端口:" + port;    }}

启动类添加注解

@SpringBootApplication@EnableDiscoveryClientpublic class GatewayClientApplication {    public static void main(String[] args) {        SpringApplication.run(GatewayClientApplication.class, args);    }}

创建module项目gateway-service

添加依赖

        com.cxh        gateway        0.0.1-SNAPSHOT                 com.cxh    gateway-service    0.0.1-SNAPSHOT    gateway-service    Demo project for Spring Boot            1.8                            org.springframework.boot            spring-boot-starter                            org.springframework.boot            spring-boot-starter-test            test                            org.springframework.cloud            spring-cloud-starter-gateway            3.0.4                                    com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-discovery                                    com.alibaba.cloud            spring-cloud-starter-alibaba-nacos-config                            org.springframework.cloud            spring-cloud-starter-feign            1.4.3.RELEASE                            org.springframework.cloud            spring-cloud-loadbalancer                            org.springframework.cloud            spring-cloud-starter-netflix-hystrix            2.2.10.RELEASE            

yml配置

server:  port: 8001spring:  application:    name: gateway-service #服务名  profiles:    active: dev #环境设置  cloud:    gateway:      routes:        # 透传服务        - id: gateway-client #设置路由id          uri: lb://gateway-client  #设置路由的url lb://nacos服务注册名称          predicates:            - Path=/client/** #路径匹配规则          filters:            - StripPrefix=1

跨域配置

@Configurationpublic class CorsConfig {    @Bean    public CorsWebFilter corsFilter() {        CorsConfiguration config = new CorsConfiguration();        config.addAllowedMethod("*");        config.addAllowedOrigin("*");        config.addAllowedHeader("*");        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());        source.registerCorsConfiguration("/**", config);        return new CorsWebFilter(source);    }}

3.实现效果:

启动nacos后,再启动gateway-client, gateway-service项目,打开浏览器http://localhost:8001/client/index

返回信息:gateway-client端口:8002

关于"springcloud整合gateway怎么实现网关"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"springcloud整合gateway怎么实现网关"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

0