springcloud整合gateway實(shí)現(xiàn)網(wǎng)關(guān)的示例代碼
1.項(xiàng)目目錄:

創(chuàng)建項(xiàng)目gateway作為父類
2.代碼實(shí)現(xiàn):
父類依賴
?
<parent>
? ? ? ? <groupId>org.springframework.boot</groupId>
? ? ? ? <artifactId>spring-boot-starter-parent</artifactId>
? ? ? ? <version>2.6.2</version>
? ? ? ? <relativePath/> <!-- lookup parent from repository -->
? ? </parent>
? ? <groupId>com.cxh</groupId>
? ? <artifactId>gateway</artifactId>
? ? <version>0.0.1-SNAPSHOT</version>
? ? <name>gateway</name>
? ? <description>Demo project for Spring Boot</description>
? ? <packaging>pom</packaging>
? ? <properties>
? ? ? ? <java.version>8</java.version>
? ? ? ? <spring-cloud-alibaba-dependencies.version>2021.1</spring-cloud-alibaba-dependencies.version>
? ? ? ? <spring-cloud-dependencies.version>2021.0.0</spring-cloud-dependencies.version>
? ? </properties>
? ? <dependencyManagement>
? ? ? ? <dependencies>
? ? ? ? ? ? <dependency>
? ? ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId>
? ? ? ? ? ? ? ? <artifactId>spring-cloud-dependencies</artifactId>
? ? ? ? ? ? ? ? <version>${spring-cloud-dependencies.version}</version>
? ? ? ? ? ? ? ? <type>pom</type>
? ? ? ? ? ? ? ? <scope>import</scope>
? ? ? ? ? ? </dependency>
? ? ? ? ? ? <dependency>
? ? ? ? ? ? ? ? <groupId>com.alibaba.cloud</groupId>
? ? ? ? ? ? ? ? <artifactId>spring-cloud-alibaba-dependencies</artifactId>
? ? ? ? ? ? ? ? <version>${spring-cloud-alibaba-dependencies.version}</version>
? ? ? ? ? ? ? ? <type>pom</type>
? ? ? ? ? ? ? ? <scope>import</scope>
? ? ? ? ? ? </dependency>
? ? ? ? </dependencies>
? ? </dependencyManagement>
?創(chuàng)建module項(xiàng)目gateway-client
添加依賴
<parent> ? ? ? ? <groupId>com.cxh</groupId> ? ? ? ? <artifactId>gateway</artifactId> ? ? ? ? <version>0.0.1-SNAPSHOT</version> ? ? ? ? <relativePath/> <!-- lookup parent from repository --> ? ? </parent> ? ? <groupId>com.cxh</groupId> ? ? <artifactId>gateway-client</artifactId> ? ? <version>0.0.1-SNAPSHOT</version> ? ? <name>gateway-client</name> ? ? <description>Demo project for Spring Boot</description> ? ? <properties> ? ? ? ? <java.version>1.8</java.version> ? ? </properties> ? ? <dependencies> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? <artifactId>spring-boot-starter</artifactId> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? <artifactId>spring-boot-starter-test</artifactId> ? ? ? ? ? ? <scope>test</scope> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? <artifactId>spring-boot-starter</artifactId> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? <artifactId>spring-boot-starter-test</artifactId> ? ? ? ? ? ? <scope>test</scope> ? ? ? ? </dependency> ? ? ? ? <!--服務(wù)注冊--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> ? ? ? ? ? ? <version>0.2.1.RELEASE</version> ? ? ? ? </dependency> ? ? ? ? <!--服務(wù)調(diào)用--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-openfeign</artifactId> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? <artifactId>spring-boot-starter-web</artifactId> ? ? ? ? </dependency> ? ? </dependencies>
yml配置
server: ? port: 8002 spring: ? application: ? ? name: gateway-client #服務(wù)名 ? profiles: ? ? active: dev #環(huán)境設(shè)置 ? cloud: ? ? nacos: ? ? ? discovery: ? ? ? ? server-addr: 127.0.0.1:8848 #nacos服務(wù)注冊
控制層
@RestController
public class ClientController {
@Value("${server.port}")
private String port;
@RequestMapping("/index")
public String index(){
return "gateway-client端口:" + port;
}
}啟動類添加注解
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayClientApplication {
? ? public static void main(String[] args) {
? ? ? ? SpringApplication.run(GatewayClientApplication.class, args);
? ? }
}創(chuàng)建module項(xiàng)目gateway-service
添加依賴
<parent> ? ? ? ? <groupId>com.cxh</groupId> ? ? ? ? <artifactId>gateway</artifactId> ? ? ? ? <version>0.0.1-SNAPSHOT</version> ? ? ? ? <relativePath/> <!-- lookup parent from repository --> ? ? </parent> ? ? <groupId>com.cxh</groupId> ? ? <artifactId>gateway-service</artifactId> ? ? <version>0.0.1-SNAPSHOT</version> ? ? <name>gateway-service</name> ? ? <description>Demo project for Spring Boot</description> ? ? <properties> ? ? ? ? <java.version>1.8</java.version> ? ? </properties> ? ? <dependencies> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? <artifactId>spring-boot-starter</artifactId> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? ? ? <artifactId>spring-boot-starter-test</artifactId> ? ? ? ? ? ? <scope>test</scope> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-gateway</artifactId> ? ? ? ? ? ? <version>3.0.4</version> ? ? ? ? </dependency> ? ? ? ? <!--服務(wù)注冊/發(fā)現(xiàn)中心依賴--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.alibaba.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> ? ? ? ? </dependency> ? ? ? ? <!--服務(wù)的配置中心依賴--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.alibaba.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-feign</artifactId> ? ? ? ? ? ? <version>1.4.3.RELEASE</version> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-loadbalancer</artifactId> ? ? ? ? </dependency> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> ? ? ? ? ? ? <version>2.2.10.RELEASE</version> ? ? ? ? </dependency> ? ? </dependencies>
yml配置
server: ? port: 8001 spring: ? application: ? ? name: gateway-service #服務(wù)名 ? profiles: ? ? active: dev #環(huán)境設(shè)置 ? cloud: ? ? gateway: ? ? ? routes: ? ? ? ? # 透傳服務(wù) ? ? ? ? - id: gateway-client #設(shè)置路由id ? ? ? ? ? uri: lb://gateway-client ?#設(shè)置路由的url lb://nacos服務(wù)注冊名稱 ? ? ? ? ? predicates: ? ? ? ? ? ? - Path=/client/** #路徑匹配規(guī)則 ? ? ? ? ? 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.實(shí)現(xiàn)效果:
啟動nacos后,再啟動gateway-client, gateway-service項(xiàng)目,打開瀏覽器http://localhost:8001/client/index
返回信息:gateway-client端口:8002
到此這篇關(guān)于springcloud整合gateway實(shí)現(xiàn)網(wǎng)關(guān)的示例代碼的文章就介紹到這了,更多相關(guān)springcloud gateway網(wǎng)關(guān)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
找出鏈表倒數(shù)第n個節(jié)點(diǎn)元素的二個方法
本文提供了找出鏈表倒數(shù)第n個節(jié)點(diǎn)元素的二個方法,其中一個方法是JAVA代碼實(shí)現(xiàn)2013-11-11
Spring聲明式事務(wù)@Transactional知識點(diǎn)分享
在本篇文章里小編給大家整理了關(guān)于Spring聲明式事務(wù)@Transactional詳解內(nèi)容,需要的朋友們可以參考下。2020-02-02
springboot 使用zookeeper實(shí)現(xiàn)分布式隊列的基本步驟
這篇文章主要介紹了springboot 使用zookeeper實(shí)現(xiàn)分布式隊列,通過ZooKeeper的協(xié)調(diào)和同步機(jī)制,多個應(yīng)用程序可以共享一個隊列,并按照先進(jìn)先出的順序處理隊列中的消息,需要的朋友可以參考下2023-08-08
MyBatis-Plus通過version機(jī)制實(shí)現(xiàn)樂觀鎖的思路
version機(jī)制的核心思想就是,假設(shè)發(fā)生并發(fā)沖突的幾率很低,只有當(dāng)更新數(shù)據(jù)的時候采取檢查是否有沖突,而判斷是否有沖突的依據(jù)就是version的值是否被改變了,這篇文章主要介紹了MyBatis-Plus通過version機(jī)制實(shí)現(xiàn)樂觀鎖的思路,需要的朋友可以參考下2021-09-09
Java基于Base64實(shí)現(xiàn)編碼解碼圖片文件
這篇文章主要介紹了Java基于Base64實(shí)現(xiàn)編碼解碼圖片文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03

