aopカット面は、tkmapperのサブクラスの上のクラスの注釈を引き継ぎます。


これは私の最初の文章です。自分はまだ白です。間違ったところがあれば指摘してもいいですよ。1.pointcut表現:executionは接続点にマッチします。annotationは方法の注釈にしかマッチしません。クラスの注釈は一致しません。
@annotation(com.novacloud.common.annotation.MongoJournal)
execution(* com.novacloud.common.dao..*.*(..))
2.Aoundは最初に実行され、次はBeforeであり、その後、
Object result = joinPoint.proceed();
実行方法は、後にAfterなどがあります。3.うどんの取得方法
MethodSignature signature = (MethodSignature) joinPoint.getSignature();  
Method method = signature.getMethod();
4.上の皆さんは全部接触したことがあります。これは私が長い間やってきた穴です。主な内容です。(Xmapperインターフェースで注釈を使いましたが、Xmapperはtkmapperを引き継いでいでいます。私がしたいのはXmapperの注釈を取ることです。)。引き継ぎ、代理の原因です。
joinPoint.getTarget()
取得したのはすべて最下層のBaseMapperで、類の情報は入手できませんでしたが、強転後のmapperはXmapperの代理です。直接使用できます。方法によって情報を取得します。
Mapper mapper = (Mapper) joinPoint.getTarget();
//    
Object object = joinPoint.getArgs()[0];
//      XXmapper       
Object oldObject = mapper.selectByPrimaryKey(object);
したがって、サブクラスを取得するには、targetでは入手できません。同じようにsignature.getMethodを通じてもいけません。以下は解決方法です。
//      
String className = ((Class) AopUtils.getTargetClass(joinPoint.getTarget()).getGenericInterfaces()[0]).getSimpleName();
//         
MapperType mapperType = (MapperType) ((Class) AopUtils.getTargetClass(joinPoint.getTarget()).getGenericInterfaces()[0]).getAnnotation(MapperType.class);