1,实现目的
当我们在做项目时难免会遇到mysql中的表存在大量重复且填充方式一样的字段(如:创建时间,修改时间等),这些字段在填充时只需获取当前系统时间并填入即可,无需外部输入数据,如果我们对它们单独操作会存在大量重复代码,因此我们可以考虑使用AOP面向切面编程来简化这些重复代码。
2,实现思路
根据AOP的思想我们可以在执行方法的前中后切入一段固定的程序,因此我们可以在进行字段的填充前,运用反射获取实体类set方法为重复的字段(时间等)进行统一赋值后再执行sql语句。
3,具体实现
3.1 AOP的实现
自定义一个注解(AutoFill),用于标注哪些方法需要使用AOP中的程序
自定义切面类(AutoFillAspect),拦截标识了AutoFill注解的方法,通过反射获取参数实体类的set方法,通过set方法为其公共重复字段赋值
在需要进行此操作的方法上加AutoFill注解标识
最后即可进行测试,上表的对应字段在进行Insert/Update方法时将会自动注入