1

我正在尝试建议(用于记录目的)在带有 Aspect 的 Spring Web App 中使用 @RequestMappging 注释的方法。这是我的方面类:

@Aspect
public class InboundSpringPerfLoggerAspect extends AbstractInboundPerfLoggerAspect {

@Around(value = "execution(* *(..)) && @annotation(requestMapping)" , argNames = "pjp, requestMapping")
public Object doPerfLoggingForOperation(final ProceedingJoinPoint pjp, final RequestMapping requestMapping) throws Throwable {
    return doPerfLogging(pjp, LOGGER_NAME);
}

我的 XML servlet 配置(MVC 上下文)文件是这样的:

<aop:aspectj-autoproxy/>

<!-- Logging aspect for inbound rest calls -->
<bean id="inboundServicePerfLoggerAspect" class="common.logging.aspect.InboundSpringPerfLoggerAspect"/>

<context:annotation-config />

<context:component-scan base-package="web.configuration" />
<context:component-scan base-package="web.controller" />
<context:component-scan base-package="web..service" />

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

<bean name="xmlViewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
    <property name="order" value="1" />
</bean>

</beans>

然而,在调试模式下 Spring 的日志启动时显示相同的消息:

DEBUG [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping] Rejected bean name 'inboundServicePerfLoggerAspect': no URL paths identified

当然,控制器类也没有得到适当的建议。他们工作得很好,但没有发生 Spring 代理 AOP。

问题出在哪里?

谢谢

4

0 回答 0