Spring MVC 是否可以将PointCut添加到ModelAndView方法?

kwvwclae  于 2023-03-13  发布在  Spring
关注(0)|答案(1)|浏览(125)

我尝试使用PointCut在ModelAndView.setViewName之后执行一些post操作,但似乎从未触发:

@Aspect
@Component
public class TestAspect {
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Pointcut("execution(* org.springframework.web.servlet.ModelAndView.*(..))")
    public void testPointCut() {

    }

    @After("testPointCut()")
    public void afterPointCut(JoinPoint joinPoint) {
        logger.debug("afterPointCut");
    }
}

如果我将execution部分更改为我自己的某个类,则此点切割有效。
那么,将PointCut添加到ModelAndView的正确方法是什么呢?

64jmpszr

64jmpszr1#

我不是一个Spring用户,但是我所知道的关于Spring AOP的是你只能将它应用到Spring组件。类ModelAndView不是从任何Spring核心组件类派生出来的,也不是由任何使它成为这样的东西来注解的,它是一个简单的POJO。因此你不能通过Spring AOP切入点来定位它。你应该定位Spring AOP范围内的东西。
另一种选择是将大武器解包并使用完整的AspectJ LTW(加载时编织),这并不局限于Spring组件。

相关问题