問題タブ [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.

0 投票する
0 に答える
220 参照

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 管理のアスペクトに注入する方法はありますか?