最近在搞一个统一给接口参数加解密的工具吧,之前的做法是通过filter进行参数解密,然后再分发到对象的controller接口,业务接口处理后,通过AOP切面去加密参数返回给第三方,后面想了另外一种方式,直接通过AOP的环绕增强给参数做加解密;切面这块就不展开讲了,主要处理的是标题的内容,下面进入正题:
@getter
@setter
class BaseParam<T>{
//密文
private String ciphertext;
//接口的真实对象
private T realData;
}
比如上述对象,前端或者其他人调用的时候传密文进来,然后我这边通过切面,先把参数解密,然后set进真实的对象里面;如下面的controller登录接口
public String login(@RequestBody BaseParam<LoginVO> body){
//业务处理
}
这样,登录接口就把泛型确定了;然后通过切面如何获取登录接口的泛型的真实类型呢?
很简单,我先卖个关子,先讲一下我的心路历程: