Bei der Verwendung von spring aop:around, wie bekomme ich den return-Typ der pointcut-Methode?

Ich eine Anforderung haben, jetzt, ist, dass beim verwenden mybatis(vor allem diejenigen, batch execute von sql), überprüfen Sie die parameter zunächst , wenn der parameter null ist oder leer ist , dann einfach zurückgeben, nicht gehen und wenn der Rückgabetyp Liste,zB.

List<User> getByIds(List<Long> idList)

leer zurück ArrayList, wenn der Rückgabetyp void ist:

 void batchInsert(List<User>)

null zurück.
Der Zweck ist, um diese situation zu vermeiden, wie zB.

select * from user where id in ()
insert into user(name,email) values ()

aber von joinPoint ich kann Sie nicht zurück geben,nur Argumente.

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();

So, wie bekomme ich den return-Typ in der aop:around?

InformationsquelleAutor zhuguowei | 2015-01-22
Schreibe einen Kommentar