我尝试使用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
的正确方法是什么呢?
1条答案
按热度按时间64jmpszr1#
我不是一个Spring用户,但是我所知道的关于Spring AOP的是你只能将它应用到Spring组件。类
ModelAndView
不是从任何Spring核心组件类派生出来的,也不是由任何使它成为这样的东西来注解的,它是一个简单的POJO。因此你不能通过Spring AOP切入点来定位它。你应该定位Spring AOP范围内的东西。另一种选择是将大武器解包并使用完整的AspectJ LTW(加载时编织),这并不局限于Spring组件。