springcloud整合gateway實現(xiàn)網(wǎng)關的示例代碼
1.項目目錄:
創(chuàng)建項目gateway作為父類
2.代碼實現(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項目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> ? ? ? ? <!--服務注冊--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>org.springframework.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> ? ? ? ? ? ? <version>0.2.1.RELEASE</version> ? ? ? ? </dependency> ? ? ? ? <!--服務調用--> ? ? ? ? <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 #服務名 ? profiles: ? ? active: dev #環(huán)境設置 ? 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; } }
啟動類添加注解
@SpringBootApplication @EnableDiscoveryClient public class GatewayClientApplication { ? ? public static void main(String[] args) { ? ? ? ? SpringApplication.run(GatewayClientApplication.class, args); ? ? } }
創(chuàng)建module項目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> ? ? ? ? <!--服務注冊/發(fā)現(xiàn)中心依賴--> ? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.alibaba.cloud</groupId> ? ? ? ? ? ? <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> ? ? ? ? </dependency> ? ? ? ? <!--服務的配置中心依賴--> ? ? ? ? <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 #服務名 ? profiles: ? ? active: dev #環(huán)境設置 ? cloud: ? ? gateway: ? ? ? routes: ? ? ? ? # 透傳服務 ? ? ? ? - id: gateway-client #設置路由id ? ? ? ? ? uri: lb://gateway-client ?#設置路由的url lb://nacos服務注冊名稱 ? ? ? ? ? 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.實現(xiàn)效果:
啟動nacos后,再啟動gateway-client, gateway-service項目,打開瀏覽器http://localhost:8001/client/index
返回信息:gateway-client端口:8002
到此這篇關于springcloud整合gateway實現(xiàn)網(wǎng)關的示例代碼的文章就介紹到這了,更多相關springcloud gateway網(wǎng)關內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring聲明式事務@Transactional知識點分享
在本篇文章里小編給大家整理了關于Spring聲明式事務@Transactional詳解內容,需要的朋友們可以參考下。2020-02-02springboot 使用zookeeper實現(xiàn)分布式隊列的基本步驟
這篇文章主要介紹了springboot 使用zookeeper實現(xiàn)分布式隊列,通過ZooKeeper的協(xié)調和同步機制,多個應用程序可以共享一個隊列,并按照先進先出的順序處理隊列中的消息,需要的朋友可以參考下2023-08-08MyBatis-Plus通過version機制實現(xiàn)樂觀鎖的思路
version機制的核心思想就是,假設發(fā)生并發(fā)沖突的幾率很低,只有當更新數(shù)據(jù)的時候采取檢查是否有沖突,而判斷是否有沖突的依據(jù)就是version的值是否被改變了,這篇文章主要介紹了MyBatis-Plus通過version機制實現(xiàn)樂觀鎖的思路,需要的朋友可以參考下2021-09-09