問題springcloud getway配置文件加載失敗
問題一
Description:
Failed to bind properties under 'spring.cloud.gateway' to org.springframework.cloud.gateway.config.GatewayProperties:
Reason: HV000083: The specified annotation javax.validation.constraints.NotNull defines no attribute 'groups'.
Action:
Update your application's configuration

問題二
Failed to bind properties under 'spring.cloud.gateway.routes[0].filters[0]' to org.springframework.cloud.gateway.filter.FilterDefinition:
Property: spring.cloud.gateway.routes[0].filters[0]
Value: StripPrefix=1
Origin: class path resource [application.yml]:19:15
Reason: HV000083: The specified annotation javax.validation.constraints.NotNull defines no attribute 'groups'.
Action:
Update your application's configuration
application.yml
server:
port: 9527
spring:
application:
name: getway-server
cloud:
gateway:
# discovery:
# locator:
# enabled: true
routes:
- id: author-server
uri: https://localhost:8888 #轉發后的地址
predicates:
- Path=/author/**
filters:
- StripPrefix=1
#eureka:
# client:
# serviceUrl: #注冊服務到eureka集群
# defaultZone: http://eureka8761.com:8761/eureka,http://eureka8762.com:8762/eureka,http://eureka8763.com:8763/eureka
# instance:
# instance-id: ${spring.application.name}:${server.port}
# prefer-ip-address: true #訪問路徑可以顯示IP地址

原因
1、配置文件名稱不對
應為application.yml

2、依賴導入有問題
getway自動配置源碼
GatewayAutoConfiguration.java
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(Health.class)
protected static class GatewayActuatorConfiguration {
@Bean
@ConditionalOnProperty(name = "spring.cloud.gateway.actuator.verbose.enabled",
matchIfMissing = true)//默認為true
@ConditionalOnAvailableEndpoint
public GatewayControllerEndpoint gatewayControllerEndpoint(
List<GlobalFilter> globalFilters,
List<GatewayFilterFactory> gatewayFilters,
List<RoutePredicateFactory> routePredicates,
RouteDefinitionWriter routeDefinitionWriter, RouteLocator routeLocator) {
return new GatewayControllerEndpoint(globalFilters, gatewayFilters,
routePredicates, routeDefinitionWriter, routeLocator);
}
@Bean
@Conditional(OnVerboseDisabledCondition.class)
@ConditionalOnAvailableEndpoint
public GatewayLegacyControllerEndpoint gatewayLegacyControllerEndpoint(
RouteDefinitionLocator routeDefinitionLocator,
List<GlobalFilter> globalFilters,
List<GatewayFilterFactory> gatewayFilters,
List<RoutePredicateFactory> routePredicates,
RouteDefinitionWriter routeDefinitionWriter, RouteLocator routeLocator) {
return new GatewayLegacyControllerEndpoint(routeDefinitionLocator,
globalFilters, gatewayFilters, routePredicates, routeDefinitionWriter,
routeLocator);
}
}
默認開啟getway執行器配置。但沒有導入相應的依賴。

pom.xml
<dependencies>
<!--gateway 網關依賴,內置webflux 依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
</dependencies>
需導入spring-boot-starter-actuator
pom.xml
<dependencies>
<!--gateway 網關依賴,內置webflux 依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>

執行成功

測試一下是否轉發成功
正常訪問

使用getway轉發

