我可以在mybatis mapper上设置Spring AOP切入点吗?

Can I set Spring AOP pointcut on mybatis mapper?

<aop:pointcut id="logPointcut" expression="(execution(* net.com..a..*Controller.*(..))
                                         or execution(* net.com.a..*ServiceImpl.*(..))
                                         or execution(* net.com.a..*Mapper.*(..)) />

是xml文件中的切入点设置

public interface UserMapper {
    List<UserVO> selectUser(UserVO userVO) throws Exception;
}

我想在界面中设置AOP切入点。 它们是由 mybatis 创建的。

上面的表达式不适用于映射器。

根本不可能吗?

这个问题已经在这里被问过几十次了,而且总是被想使用 Spring AOP 的人问过,但从来没有真正费心去查看它的文档或者至少在发布问题之前搜索 Whosebug。这样的开发者如何生存?

简短的回答是:

  • 不行,Spring AOP只能拦截Spring个组件的方法。
  • 如果你想拦截非Spring的东西,使用AspectJ。您可以在有或没有 Spring 的情况下使用它。如果您想从 Spring 使用它,Spring 手册会告诉您如何配置它。否则 AspectJ 手册会告诉您。