Spring Cloud Gateway Filter(java,yml)の設定
12401 ワード
🔨ymlではなくJavaコードに設定
既存のyml設定にコメント処理を行います.
次にconfigパッケージを作成し、FilterConfig javaファイルを作成します.
サービス1,2の変更
2つのサービスが要求されると、各ヘッダの情報がログに伝達されていることを確認できます.
また、各クライアント応答のヘッダに作成したヘッダ値が含まれているかどうかを確認することもできます.
🔨ymlに設定
既存のFilterConfigファイルを削除するか、これらのファイルのみにコメントしてymlを使用して同じ操作を行います.
postmanリクエストにより、出力結果がフィルタで設定した内容と同じであることが確認できます.
既存のyml設定にコメント処理を行います.
次にconfigパッケージを作成し、FilterConfig javaファイルを作成します.
@Configuration //해당 어노테이션을 통해 spring이 시작될때 context에 자동으로 등록되도록 한다.
public class FilterConfig {
@Bean
public RouteLocator gatewayRoutes(RouteLocatorBuilder builder){
return builder.routes()
.route(r-> r.path("/first-service/**")
.filters(f-> f.addRequestHeader("first-request","first-request-header")
.addResponseHeader("first-response","first-response-header"))
.uri("http://127.0.0.1:8001")) //기존 yml에서 1번 서비스 설정과 동일
.route(r-> r.path("/second-service/**")
.filters(f-> f.addRequestHeader("second-request","second-request-header")
.addResponseHeader("second-response","second-response-header"))
.uri("http://127.0.0.1:8002")) //기존 yml에서 2번 서비스 설정과 동일
.build();
}
}
次の設定では、既存のyml設定と同じ設定をフィルタし、headerに値を挿入できます.サービス1,2の変更
@GetMapping("/message")
public String message(@RequestHeader("first-request") String header){
log.info("header = {}",header);
return "header = "+header;
}
@GetMapping("/message")
public String message(@RequestHeader("second-request") String header){
log.info("header = {}",header);
return "header = "+header;
}
ヘッダー値をlogと返される文字列に追加し、既存のコードに次の値を出力しようとします.2つのサービスが要求されると、各ヘッダの情報がログに伝達されていることを確認できます.
また、各クライアント応答のヘッダに作成したヘッダ値が含まれているかどうかを確認することもできます.
🔨ymlに設定
既存のFilterConfigファイルを削除するか、これらのファイルのみにコメントしてymlを使用して同じ操作を行います.
server:
port: 8000
eureka: #eureka 세팅은 현재 사용 안함
client:
fetch-registry: false
register-with-eureka: false
service-url:
defaultZone: http://127.0.0.1:8761/eureka
spring:
application: #gateway service 이름름 name: apigateway-service
cloud:
gateway: #gateway 설정
routes:
- id: first-service #gateway로 연결될 서비스 이름
uri: http://127.0.0.1:8001/ #gateway로 연결될 서비스 uri
predicates: #gateway로 연결될 서비스의 url 매핑
- Path=/first-service/**
filters:
- AddRequestHeader=first-request, first-request-header2
- AddResponseHeader=first-response, first-response-header2
- id: second-service
uri: http://127.0.0.1:8002/
predicates:
- Path=/second-service/**
filters:
- AddRequestHeader=second-request, second-request-header2
- AddResponseHeader=second-response, second-response-header2
サーバーの実行postmanリクエストにより、出力結果がフィルタで設定した内容と同じであることが確認できます.
Reference
この問題について(Spring Cloud Gateway Filter(java,yml)の設定), 我々は、より多くの情報をここで見つけました https://velog.io/@ililil9482/Spring-Cloud-Gateway-FilterJava-설정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol