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>
  • 相关阅读:
    Mysql 使用触发器,把插入的数据在插入到宁一张表里
    Mysql 查询今天的某些时间之外的数据
    PHPStorm+XDEBUG 调试Laravel
    Python 2.7 爬取51job 全国java岗位
    Tp3.1 文件上传到七牛云
    TP3.1 一对多模型关联
    Mysql 主从配置
    自动化测试Java一:Selenium入门
    Selenium基于Python 进行 web 自动化测试
    Python 创建XML
  • 原文地址:https://www.cnblogs.com/cdeelen/p/11000282.html
Copyright © 2011-2022 走看看