728x90
반응형
yml 파일에 기록한 config를 어떻게 적용 시키는지에 대한 내용으로 보임.
기본적으로 RouteDefinitionLocator 인터페이스를 구현한 PropertiesRouteDefinitionLocator 에서 Springboot의 기본 configure 로딩 방법인 @ConfigurationProperties 메카니즘에 의해 설정을 로딩하게 되어 있다.
매뉴얼에서는 Shortcut notation 방법과 이름 기반하의 설정이 동일하다고 말하고 있다.
spring:
cloud:
gateway:
routes:
- id: setstatus_route
uri: https://example.org
filters:
- name: SetStatus
args:
status: 401
- id: setstatusshortcut_route
uri: https://example.org
filters:
- SetStatus=401
해당 설정은 다음과 같은 방법으로 로드 되는 것으로 보인다.
package org.springframework.cloud.gateway.config;
import reactor.core.publisher.Flux;
import org.springframework.cloud.gateway.route.RouteDefinition;
import org.springframework.cloud.gateway.route.RouteDefinitionLocator;
/**
* @author Spencer Gibb
*/
public class PropertiesRouteDefinitionLocator implements RouteDefinitionLocator {
private final GatewayProperties properties;
public PropertiesRouteDefinitionLocator(GatewayProperties properties) {
this.properties = properties;
}
@Override
public Flux<RouteDefinition> getRouteDefinitions() {
return Flux.fromIterable(this.properties.getRoutes());
}
}
PropertiesRouteDefinitionLocator 생성자는 org.springframework.cloud.gateway.config.GatewayAutoConfiguration.java 에서 호출하고 있음.
@Bean
@ConditionalOnMissingBean
public PropertiesRouteDefinitionLocator propertiesRouteDefinitionLocator(
GatewayProperties properties) {
return new PropertiesRouteDefinitionLocator(properties);
}
728x90
반응형
'Architecture > MSA' 카테고리의 다른 글
Spring Cloud Gateway - Http timeouts configuration (0) | 2021.01.07 |
---|---|
Spring Cloud Gateway - Route Metadata Configuration (0) | 2021.01.07 |
Spring Cloud Gateway - HttpHeadersFilters (0) | 2021.01.07 |
Spring Cloud Gateway - Custom Predicate with AbstractRoutePredicateFactory (0) | 2021.01.06 |
Spring Cloud Gateway - Global Filter (0) | 2021.01.06 |