开发者社区 问答 正文

Spring AOP中切点定义实例有什么?

已解决

Spring AOP中切点定义实例有什么?

展开
收起
去校区学技术 2022-04-01 07:08:03 506 分享 版权
1 条回答
写回答
取消 提交回答
  • 推荐回答
    @Pointcut("execution(public * *(..))") // 1
    private void anyPublicOperation() {}
    
    @Pointcut("within(com.xyz.someapp.web..*))") // 2
    private void inTrading() {}
    
    @Pointcut("anyPublicOperation() && inTrading()") // 3
    private void tradingOperation() {}
    
    @within(org.springframework.transaction.annotation.Transactional) // 4
    private void transactionalClass() {}
    
    @annotation(org.springframework.transaction.annotation.Transactional) //5
    private void transactionalMethod() {}
    

    上面的代码定义了三个切点:

    1.任意公共方法(实际应用中一般不会定义这样的切点)

    2.在within(com.xyz.someapp.web包或者其子包下任意类的方法

    3.同时满足切点1和切点2条件的切点,这里使用了&&符号

    4.标注了Transactional的类的方法

    5.标注了Transactional的方法

    2022-04-01 07:09:15
    赞同 展开评论