现有一个公共类Employee
我们需要为其中的 createTime、updateTime、createUser、updateUser字段实现公共字段自动填充,先写了一个Log注解,这个注解是程序运行时提供服务
@Log注解
这是使用AOP切面的对象方法
然后我在写一个Automatically(自动填充字段类)
其中注释的是第一次写的是一个失败的例子,原因是使用ProceedingJoinPoint 获取参数中的的对象时在第33行中我直接获取的是使用@Log注解的方法对象中的内容所以并没有找到我所预设的字段,于是经过一番改进
我先从ProceedingJoinPoint类中获取到方法参数数组,其中第一个参数类是HttpServletRequest这个是提供前端页面表头返回来的请求数据的。而第二个参数类Employee才是我所需,从数组中取出向上转型,并且通过反射代理获取他的反射类。然后遍历这个类的所有所有字段通过goreach取出,再通过swich case循环找到我预设的字段名进行填充操作。这样就会在使用@Log注解方法运行前获取他的参数进行完公共字段填充在把方法放行,完成前端发来的数据进行逻辑处理。