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>
  • 相关阅读:
    第08组 Alpha冲刺(1/4)
    第08组 团队Git现场编程实战
    第二次结对编程作业
    团队项目-需求分析报告
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    第一次实践作业
    互联网协议学习笔记
    【选修建模的小练习】长方形椅子的稳定性探究
  • 原文地址:https://www.cnblogs.com/cdeelen/p/11000282.html
Copyright © 2011-2022 走看看