問題タブ [spring-aspects]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - Springを使用しているときに、アスペクトでJerseyのコンテキストオブジェクトにアクセスする方法は?
私はSpring 5.2.xとJersey 2.30.x for JAX-RSを使用しています。
次のような注釈があります。
私のサービスでは、この注釈を次のように使用します。
@MyAnnotation
注釈が存在するときに特定のロジックを実行したい。このために、アスペクトを作成しました。
この側面では、HTTP ヘッダーにアクセスする必要があります。Jersey の を注入しようとContainerRequest
しましたが、これは失敗したようです。参照は常にnull
です。
私の質問はContainerRequest
、Spring のマネージド Bean でなどの Jersey のコンテキスト オブジェクトにアクセスするにはどうすればよいかということです。
最小限の例
最小限の例を作成しました。 https://github.com/pbillen/playground-so-61750237を参照してください。でビルドしてmvn clean install -U
から、Tomcat コンテナを起動できmvn cargo:run
ます。ブラウザでhttp://localhost:8080/にアクセスすると、コンソールに次のように表示されます。
Jersey をバイパスして使用することによる実用的なソリューションHttpServletRequest
アスペクトで配線してから、ヘッダーHttpServletRequest
にアクセスしてみました:Authorization
私も追加しましたweb.xml
:
これは基本的にジャージーを完全にバイパスします。Authorization
これは機能しているようで、アスペクトでヘッダーを読み取ることができるようになりました。すごい!
しかし、私の疑問はまだ残っています。Jersey のコンテキスト オブジェクトを Spring 管理のアスペクトに注入する方法はありますか?