是否可以将 PointCut 添加到 ModelAndView 方法中?
Is it possible to add PointCut to ModelAndView method?
我尝试使用 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
部分更改为我自己的部分 class,则该切点有效。
那么PointCut
加ModelAndView
的正确方法是什么?
我不是 Spring 用户,但我对 Spring AOP 的了解是您只能将其应用于 Spring 组件。 class ModelAndView
不是从任何 Spring 核心组件派生的 class 也没有任何注释,它是一个简单的 POJO。因此,您不能通过 Spring AOP 切入点来定位它。您应该定位 Spring AOP 可以达到的目标。
另一种方法是打开大炮并使用完整的 AspectJ LTW(加载时编织),它不限于 Spring 个组件。
我尝试使用 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
部分更改为我自己的部分 class,则该切点有效。
那么PointCut
加ModelAndView
的正确方法是什么?
我不是 Spring 用户,但我对 Spring AOP 的了解是您只能将其应用于 Spring 组件。 class ModelAndView
不是从任何 Spring 核心组件派生的 class 也没有任何注释,它是一个简单的 POJO。因此,您不能通过 Spring AOP 切入点来定位它。您应该定位 Spring AOP 可以达到的目标。
另一种方法是打开大炮并使用完整的 AspectJ LTW(加载时编织),它不限于 Spring 个组件。