使用spring的事务框架,对自定义的Groovy对象实现事务注解

            //如果有事务注解
            TransactionInterceptor transactionInterceptor = ContextUtils.getBean(TransactionInterceptor.class);
            for (Method method : scriptClass.getDeclaredMethods()) {
                Transactional annotation = method.getAnnotation(Transactional.class);
                if (notNull(annotation) && notNull(transactionInterceptor)) {
                    // 创建代理工厂并设置拦截器
                    ProxyFactory proxyFactory = new ProxyFactory(bean);
                    AnnotationMatchingPointcut pointcut = new AnnotationMatchingPointcut(Transactional.class, true);
                    proxyFactory.addAdvisor(new DefaultPointcutAdvisor(pointcut, transactionInterceptor));
                    bean = (T) proxyFactory.getProxy();
                    break;
                }
            }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容