在使用Spring AOP:Above时,怎么获取切入点方法的返回类型?

原学程将引见在应用Spring AOP:Above时,若何夺取切进面办法的前往典型?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

在使用Spring AOP:Above时,怎么获取切入点方法的返回类型? 教程 第1张

成绩描写

我如今有1个请求,这便是在应用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=一){
 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时,怎样夺取切进面办法的前往典型?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。