SpringMVC-Aspectj集成

时间:2018-01-21 12:11:50

标签: spring-mvc spring-aop

我想在我的Spring MVC项目中配置spring AOP: 以下是代码:

package com.samik.aspect;

    import org.aspectj.lang.JoinPoint;
    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.aspectj.lang.annotation.Pointcut;
    import org.springframework.web.servlet.ModelAndView;

    @Aspect
    public class LoggingAspect {

    @Before("HomeGetter()")
    public void LoggingAdvice(JoinPoint joinPoint){
        System.out.println("Logger Advice called for Home Request");
        System.out.println(joinPoint.toString());
    }

    @Pointcut("execution(protected ModelAndView getHomePage())")
    public void HomeGetter(){}
    }
   -------------------------------------------------------------------------

Main.java

@RequestMapping(value="/Home.html", method = RequestMethod.GET)
    protected ModelAndView getHomePage(){
        ModelAndView modelAndView = new ModelAndView("content/home/Home");
        return modelAndView;
    }

在调度程序servlet中添加了以下代码:

<bean id = "loggingAspect" class = "com.samik.aspect.LoggingAspect" />
    <aop:aspectj-autoproxy>
    <aop:include name='loggingAspect' />
    </aop:aspectj-autoproxy>

没有收到错误,请帮忙。看着互联网,这就是提出解决方案的方法。 如果我错过任何东西,请还原吗?

1 个答案:

答案 0 :(得分:0)

错误消息ModelAndView [Xlint:invalidAbsoluteTypeName]表示您在切入点中使用的类型名称不存在(或不完全限定)。它应该有助于将切入点更改为:

@Pointcut("execution(protected org.springframework.web.servlet.ModelAndView getHomePage())")