티스토리 뷰

ROUTE_CONFIG.json

[{
  "uri" : "https://www.naver.com",
  "connectionTimedOut" : "300000",
  "responseTimedOut" : "30000",
  "enabled" : "true",
  "predicates" : [{
	"predicateType" : "Path",
	"args" : {
	  "pattern_0" : "/blog/**"
	  "pattern_1" : "/news/**"
	}
  }],
  "filters" : [{
	"filterName" : "DeviceHeaderFilter",
	"args" : {}
  }]
},
  {
	"uri" : "https://www.daum.net",
	"enabled" : "true",
	"predicates" : [{
	  "predicateType" : "Path",
	  "args" : {
		"pattern_0" : "/cafe/**",
		"pattern_1" : "/sports/**"
	  }
	}],
	"filters" : []
  }]

ROUTE_CONFIG.json 데이터를 RoutePredication 으로 변환해주는 과정을 거쳐야 Meta Data 가 Spring Cloud Gateway 의 설정으로 역할을 할 수 있다.

 

Spring Cloud Gateway 에 Java 코드로 설정을 적용하는 방법은 여러가지가 있지만 후에 Dynamic Routing & Dynamic configuration change 과 같이 런타임에 설정을 변경하기 위하여 RoutePreidication 으로 Meta data 를 변경하기로 하였다.

 

RouteDefinition.java

public class RouteDefinition {

	private String id;

	@NotEmpty
	@Valid
	private List<PredicateDefinition> predicates = new ArrayList<>();

	@Valid
	private List<FilterDefinition> filters = new ArrayList<>();

	@NotNull
	private URI uri;

	private Map<String, Object> metadata = new HashMap<>();

	private int order = 0;
    
    ....
}

RouteDeifinition 클래스의 멤버 변수들인 PredicateDefinition, FilterDefinition 은 모두 String 을 멤버변수로 갖는다

따라서 Json 형식의 파일을 읽어서 클래스에 맵핑한 후에 RouteDefinition.java 로 Converting 해주기만 하면 RouteDefinition 클래스로의 컨버팅은 완료된다.

 

RouteDefinition.java 를 이용해서 Spring Cloud Gateway 설정 적용하기

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함