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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java SpringBoot啟動指定profile的8種方式詳解
這篇文章主要介紹了spring boot 如何指定profile啟動的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
java前后端傳值,參數(shù)有集合類型的數(shù)據(jù)時的兩種操作方式
這篇文章主要介紹了java前后端傳值,參數(shù)有集合類型的數(shù)據(jù)時的兩種操作方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
SpringBoot自動初始化數(shù)據(jù)庫的方法分享
我們在項目中應該經(jīng)常遇到過初始化數(shù)據(jù)的場景,特別是項目部署或者交付的時候,那么有什么方式可以在項目啟動的時候自動初始化數(shù)據(jù)庫呢,下面小編就來和大家分享幾個方法吧2023-08-08
Java?Thread.currentThread().getName()?和?this.getName()區(qū)別詳
本文主要介紹了Thread.currentThread().getName()?和?this.getName()區(qū)別詳解,TestThread?testThread?=?new?TestThread();2022-02-02
springBoot下實現(xiàn)java自動創(chuàng)建數(shù)據(jù)庫表
這篇文章主要介紹了springBoot下實現(xiàn)java自動創(chuàng)建數(shù)據(jù)庫表的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

