那么在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" />
但我希望能够在Jersey代码中使用此注释,但它无法正常工作。现在,在Jersey配置中,将以下内容添加到web.xml中。想法是告诉Jersey在哪些包中查找各种REST服务。即它查找包中的类: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>
....
那么,在尝试让这些注释在Jersey Bean上运行方面,有什么“最佳实践”呢?
谢谢。