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无法启动的结果问题解决
    pm2日志管理插件
    运维常用shell脚本之日志清理
    Centos7.x for aarch64 下载地址
    linux下使用openssl生成https的crt和key证书
    rsync+inotify百万级文件实时同步
    nginx访问url内容过滤
    docker-compose部署zabbix4.2.5
    postgresql从库提升为主库
    Nginx+keepalived 高可用双机热备(主从模式)
  • 原文地址:https://www.cnblogs.com/cdeelen/p/11000282.html
Copyright © 2011-2022 走看看