我有一个没有实现任何接口的控制器,我正在尝试为该控制器编写方面,但它抛出异常“没有适配器用于处理程序:你的处理程序是否实现了像Controller这样的支持接口?”
public class OrderController extends BaseController{
@RequestMapping("/secure/admin/loadOrders.do")
public ModelAndView loadOrders(@ModelAttribute("orders") final Order order,BindingResult bindResult,final HttpServletRequest httpServletRequest, final HttpServletResponse httpServletResponse){
// code
}
}
我已经为控制器编写了日志记录方面
@Aspect
public class LoggingAspect {
@Before("execution(* com.cgt.web.admin.controller.OrderController.*(..))")
public void logBefore(JoinPoint joinPoint) {
System.out.println("beforecalling method");
}
}
Web.xml中
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/beans/commons/application-context.xml
</param-value>
<servlet>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/beans/web/Controller-Beans.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
在application-context.xml中定义了LoggingAspect bean
<mvc:annotation-driven />
<bean id="logAspect" class="com.cgt.aspect.LoggingAspect" />
<aop:aspectj-autoproxy proxy-target-class="true"/>
仍然像上面提到的那样“没有处理程序适配器异常”。
答案 0 :(得分:0)
您的配置看起来不太合适。如上所述,您的<mvc:annotation-driven />
配置需要进入您的MVC配置,您应该包括您的方面:
<aop:aspectj-autoproxy>
<aop:include name="logAspect"/>
</aop:aspectj-autoproxy>
此外,这里有simple logging example using AOP and Spring,它应该显示绳索。它还针对MVC控制器。