本文介紹了在使用Spring AOP:Above時,如何獲取切入點方法的返回類型?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我現在有一個要求,那就是在使用mybatis時(尤其是那些執行SQL的批處理),首先檢查參數,如果參數為空或空,則返回,不繼續,如果返回類型為List,例如。
List<User> getByIds(List<Long> idList)
如果返回類型為空,則返回空的ArrayList:
void batchInsert(List<User>)
返回NULL。
這樣做的目的是避免這種情況,例如。
select * from user where id in ()
insert into user(name,email) values ()
但從JoinPoint我無法獲取返回類型,只能獲取參數。
Object[] args = joinPoint.getArgs();
if(args!=null&&args.length=1){
if(args[0] instanceof List){
if(((List) obj).isEmpty()){
if(returnType.equals("java.util.List"))
return new ArrayList();
else if(returnType.equals("void"))
return null;
}
}
return joinPoint.proceed();
那么如何在AOP中獲取返回類型?
推薦答案
若要從ProceedingJoinPoint
獲取方法返回類型/類,可以執行以下操作:
Signature signature = proceedingJoinPoint.getSignature();
Class returnType = ((MethodSignature) signature).getReturnType();
這篇關于在使用Spring AOP:Above時,如何獲取切入點方法的返回類型?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,