设计一个工具类:通过切面的方式扫描所有的入参和出参,动态去除所有无意义的字段,只返回有用字段?

需求原型:在日常的开发过程中,我们为了做到规范,我们需要根据不同的需求响应不同的结果,比如:

“根据用户名和用户年龄返回匹配的用户的生日”,当我们拿到需求我们的做法可能是这样的:

(1).首先我们需要一个UserModel类,该类与数据库表对应

(2).我们还需要一个UserDto类,用来接受请求参数,为了这个UserDto更具通用性,我们可能会包含很多与当前请求完全无关的字段,比如:地址、性别、工作等等...可这些对于我本次请求来说是完全没有用的。

(3).我们还需要一个UserResultVo来封装结果并返回,以此同时我们还会返回很多的无用信息和一些本就不能返回的数据。此时如果我们要去掉那些敏感数据,我们只能重新建一个类。

这样一来一回,我们已经建了至少三个实体类,这样搞我们是真的累,但不这样做又不行。

所以我苦思冥想想出这样的一个解决方案:我们只需要一个UserModel每次根据请求的参数来生成一个动态的临时参数类,响应也是如此。我们甚至能根据不同请求参数制定出不同的响应结果通过同一个方法。

“给我什么,我就生成一个只含有你给的这几个字段的实体类。你要生么,我就给你响应只含有几个字段的实体类“

思路图: 

设计一个工具类:通过切面的方式扫描所有的入参和出参,动态去除所有无意义的字段,只返回有用字段?

有兴趣或者能力强的朋友可以一起做!