springcloud整合gateway实现网关的示例代码

网友投稿 291 2022-11-06

springcloud整合gateway实现网关的示例代码

目录1.项目目录:2.代码实现:3.实现效果:

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: 8002

spring:

application:

name: gateway-client #服务名

profiles:

active: dev #环境设置

cloud:

nacos:

discovery:

server-addr: 127.0.0.1:8848 #nacos服务注册

控制层

@RestController

public class ClientController {

@Value("${server.port}")

private String port;

@RequestMapping("/index")

public String index(){

return "gateway-client端口:" + port;

zxlgmnwt }

}

启动类添加注解

@SpringBootApplication

@EnableDiscoveryClient

public 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: 8001

spring:

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

跨域配置

@Configuration

public 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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:AopUtils详解
下一篇:Java并发编程之ThreadLocal详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~