したがって、Spring xml 構成では、次のポイントカットを定義します。
<aop:config>
<aop:aspect ref="metricsAdviceInterceptor">
<aop:around method="invoke" pointcut="@annotation(com.mycom.MetricsAdvice)"/>
</aop:aspect>
</aop:config>
アイデアは、「MetricsAdvice」アノテーションを持つメソッドでメトリックを収集することです。
class SomeClass {
@MetricsAdvice
public void someMethod(...) { ... }
}
したがって、Spring 構成で明示的に Bean を宣言すると、これはすべて正常に機能します。
<bean id="someBean" class="com.mycom.SomeClass" />
しかし、ジャージコードでこの注釈を使用できるようにしたいのですが、機能しません。ここで、ジャージ構成で、以下を web.xml に追加します。アイデアは、さまざまな休憩サービスを見つけるパッケージを jersey に伝えているということです。つまり、パッケージ内のクラスを探します: com.mycom.restservices.* そしてそれらをインスタンス化します。おそらく、これらの Bean のインスタンス化は「別の方法で」行われているため、プロキシされていません。
<servlet>
<servlet-name>JerseyWebApplication</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<display-name>Jersey Servlet</display-name>
<init-param>
<param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
<param-value>com.sun.jersey.api.core.PackagesResourceConfig</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>
com.mycom.restservices.billing;
com.mycom.restservices.account;
org.codehaus.jackson.jaxrs
</param-value>
</init-param>
....
では、ジャージー ビーンでこれらのアノテーションを機能させるための「ベスト プラクティス」とは何でしょうか。
どうも。