日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一般拦截器 serviceImpl部分

發布時間:2023/11/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一般拦截器 serviceImpl部分 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一般攔截器 serviceImpl部分

package com.chinamobile.scm.masterdata.interceptor;import com.chinamobile.framework.common.context.InvokeTracer; import com.chinamobile.framework.common.context.RequestContext; import com.chinamobile.framework.utils.CollectionUtil; import com.chinamobile.scm.masterdata.util.ThreadsMapUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.ThreadUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.*; import org.springframework.stereotype.Component;import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.transaction.support.TransactionSynchronizationAdapter; import org.springframework.transaction.support.TransactionSynchronizationManager;import java.lang.reflect.Method; import java.util.Deque; import java.util.List;/*** Intercept implementation for service component.<br>** @author YangHang*/ @Component @Aspect @Slf4j public class MybatisServiceInterceptor {/*** Service切入點<br>*/@Pointcut("execution(* com.chinamobile.scm.*.service.*.*(..)) || execution(* com.chinamobile.scm.service.*.*(..))")public void pointCut() {}/*** 后置異常通知*/@AfterThrowing(pointcut = "pointCut()", throwing = "e")public void throwss(JoinPoint joinPoint, Throwable e) {MethodSignature signature = (MethodSignature) joinPoint.getSignature();Method method = signature.getMethod();System.out.println("攔截方法異常時執行 本方法內不可事務 異常:"+method.getName());}@AfterReturning("pointCut()")public void afterreturning(JoinPoint joinPoint){MethodSignature signature = (MethodSignature) joinPoint.getSignature();Method method = signature.getMethod();if(TransactionSynchronizationManager.isActualTransactionActive()) {String tid = String.valueOf(Thread.currentThread().getId());List<String> stringList= ThreadsMapUtil.getSqls(tid);if(CollectionUtils.isNotEmpty(stringList)){for(String item:stringList){log.info("SQL:"+item);}}ThreadsMapUtil.removeSQL(tid);}System.out.println("注解式攔截 本方法內可提交事務 返回"+method.getName());}@After("pointCut()")public void after(JoinPoint joinPoint){MethodSignature signature = (MethodSignature) joinPoint.getSignature();Method method = signature.getMethod(); // // if(TransactionSynchronizationManager.isActualTransactionActive()) { // TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { // @Override // public void afterCommit() { // System.out.println("send email after transaction commit..."); // } // // }); // }System.out.println("注解式攔截,結束"+method.getName());}@Before("pointCut()")public void before(JoinPoint joinPoint){Thread.currentThread().getId();MethodSignature signature = (MethodSignature) joinPoint.getSignature();Method method = signature.getMethod();System.out.println("方法規則式攔截,開始:"+method.getName());}}

?

總結

以上是生活随笔為你收集整理的一般拦截器 serviceImpl部分的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。