2

Apache CXF JAX-RS v(2.30) を使用して REST API サーバーを実装中です。春をコンテナとして使用しています。org.apache.cxf.jaxrs.ext.RequestHandlerライセンスチェック、認証、承認などのいくつかの機能を実装するために利用することを考えています(すべてカスタムコードがあります)。私の考えは、このコードを個々の実装クラス (実装RequestHandler) に分離し、のようなベース REST URL 用に構成することです/rest/*。Apache CXF と JAX-RS を初めて使用するので、次のことを理解したいと思います。

  • このアプローチは、必要な機能を実装する正しい方法ですか?
  • はいの場合、RequestHandlers が宣言されている順序は呼び出しの順序ですか?

たとえば、私の定義で次のように宣言するとします。

<beans>
<jaxrs:server id="abcRestService" address="/rest">
    <jaxrs:serviceBeans>
      <bean class="com.abc.api.rest.service.FooService" />
    </jaxrs:serviceBeans>

    <jaxrs:providers>
      <ref bean="licenseFilter" />
      <ref bean="authorizationFilter" />
    </jaxrs:providers>

</jaxrs:server>

    <bean id="licenseFilter" class="com.abc.api.rest.providers.LicenseValidator">
        <!-- License check bean properties -->
    </bean>

    <bean id="authorizationFilter" class="com.abc.api.rest.providers.AuthorizationFilter">
        <!-- authorization bean properties -->
    </bean>
</beans>

その後、licenseFilter 常に前に呼び出されauthorizationFilterますか?

RequestHandlers と s の呼び出し順序についての言及は見つかりませんでしたResponseHandler

前もって感謝します。

4

1 に答える 1

2

これを理解しました。

でのBeanの宣言順に呼び出され<jaxrs:providers>ます。したがって、問題の場合、licenseFilter は authorizationFilter の前に呼び出されます。

于 2012-06-28T19:13:18.747 に答える