所以在 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。这个想法是你告诉球衣在哪些包裹中可以找到各种休息服务。即,它在包中查找类: 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>
....
那么尝试让这些注释在球衣豆上工作的“最佳实践”是什么?
谢谢。