zoukankan      html  css  js  c++  java
  • spring AOP

    主要步骤:

    1、创建切面类

    @Component 
    @Aspect  //等价于 <aop:aspect ref="txManager">
    public class MyTransactionManager {
        //设置切入点
        @Pointcut("execution(* cn.zj.spring.service..*.*(..))")//<aop:pointcut expression="execution(* cn.zj.spring.service..*.*(..))" id="pt"/>
        public void pointcut() {}
       
        //@Before("pointcut()")//<aop:before method="begin" pointcut-ref="pt"/>
        public void begin() {
            System.out.println("开启事务");
        }
        //@AfterReturning("pointcut()")//<aop:after-returning method="commit" pointcut-ref="pt"/>
        public void commit() {
            System.out.println("提交事务");
        }
        //@AfterThrowing(pointcut="pointcut()",throwing="ex")//<aop:after-throwing method="rollback" pointcut-ref="pt" throwing="ex"/>
        public void rollback(Throwable ex) {
            System.out.println("回滚事务");
        }
        //@After("pointcut()")//<aop:after method="close" pointcut-ref="pt"/>
        public void close() {
            System.out.println("关闭session");
        }
        @Around("pointcut()")
        public void allInOne(ProceedingJoinPoint pjp) {
            try {
                System.out.println("开启事务");
                
                //执行具体的方法
                pjp.proceed();
                
                System.out.println("提交事务");
                
            } catch (Throwable e) {
                System.out.println("回滚事务");
    
            }finally {
                System.out.println("关闭session");
            }
        }
    }

    环绕式和分部式不应该同时使用!!

    2、配置组件注解扫描的包和开启AOP注解配置

    <!-- 配置注解组件扫描的包位置 -->    
        <context:component-scan base-package="cn.zj.spring"/>
        
        <!-- 开启spring aop的注解配置 -->
        <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
  • 相关阅读:
    恰瓜恰到自己家
    在 D 天内送达包裹的能力
    火车编组
    排列小球
    为什么这段时间一直在做算法题呢
    leetcode 221 ,3,480,6,54,46,209,495
    leetcode 684.354,133,207,121,63,64,jz46,120,357
    leetcode 130,200,207,329,491,494,416,547,51
    flink单机搭建以及快速编写一个简单的java job demo运行
    leetcode 437,450,508,513,538,623,652,654,662
  • 原文地址:https://www.cnblogs.com/cdeelen/p/11000282.html
Copyright © 2011-2022 走看看