Javaで書かれた一連のRestコントローラーがあります。当初の要件は、一部のエンドポイントにヘッダーを追加することでしたが、これらのヘッダー フィールドをほぼすべての REST コントローラーに追加することにしました。現在、プロジェクトには 100 を超える同様の API が含まれています:
リーリーコードから、タプルのユーザー、GUID、呼び出し元、言語がソース コードのあらゆる場所に存在することは明らかですが、コードをリファクタリングして「1 か所」に配置するか、コードをより豊富にするにはどうすればよいでしょうか。それは明らかですか?メンテナンス可能。たとえば、5 番目のパラメータを追加する必要がある場合は、100 API を使用する必要があります。
Java Spring Boot でこれを行う正規の方法は何ですか?
理想的には次のようなものが欲しいです:
リーリー ###何か案は?コントローラーのおすすめは?他に何か?要約すると、
requestheaders dto を作成し、
customheaderfilter を実装し、それを
filterregistrationbean に登録してスプリング ブート コントローラーに統合することで、ヘッダー処理を一元化します。共通ヘッダーを適用します。
ヘッダー dto (データ転送オブジェクト) の作成:
パブリックヘッダーパラメーターを表すクラスを定義します。このクラスはヘッダーから抽出された値を保持します。リーリー
フィルターの作成:
受信リクエストをインターセプトしてパブリック ヘッダーを抽出し、リクエスト プロパティに保存するフィルターを実装します。リーリー
filterregistrationbean を使用してフィルターを登録します:
メイン アプリケーション クラスでfilterregistrationbean を使用してカスタム フィルターを登録します。
リーリー
addurlpatterns メソッドをカスタマイズして、フィルターを適用する URL に一致させます。
dto を使用するようにコントローラーを変更します:
個別のヘッダー パラメーターの代わりにrequestheaders dto を使用するようにコントローラーを変更します。
リーリー
requestheaders クラスとフィルター ロジックを更新するだけで済みます。このアプローチにより、ヘッダー処理が集中化され、保守性が向上します。
以上がJava Spring Boot コントローラーでの RequestHeader の重複の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。