字段填充神器之MetaObjectHandler

Posted 旷世奇才李先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字段填充神器之MetaObjectHandler相关的知识,希望对你有一定的参考价值。

有志者,事竟成
文章持续更新,可以关注【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。

文章目录


一、字段填充神器之MetaObjectHandler

在项目中我们增加一个员工有一些信息是需要我们自己填入的,有一些信息不需要我们自己填写,例如:创建时间,创建人等,那么这些事件我们通常就是使用实体类然后set相关属性,但是我们可以使用MetaObjectHandler来将这些不要要我们自己穿的参数进行默认填充。

1、比如我们现在需要插入一个新的员工,但是创建人,创建时间,更新人,更新时间,我们想要自己填充怎么办,那么就进行如下操作:

@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler 
    @Override
    public void insertFill(MetaObject metaObject) 
        log.info("公共字段自动填充[insert]...");
        log.info(metaObject.toString());
        metaObject.setValue("createTime", LocalDateTime.now());
        metaObject.setValue("updateTime",LocalDateTime.now());
        metaObject.setValue("createUser",new Long(1));
        metaObject.setValue("updateUser",new Long(1));
    
    

2、如果我们在更新员工操作的时候想自动填充更新时间和更新人怎么办呢,就是如下:

 /**
     * @Description: 更新操作自动填充
     * @Author: KSQC
     */
    @Override
    public void updateFill(MetaObject metaObject) 
        log.info("公共字段自动填充[update]...");
        log.info(metaObject.toString());
        metaObject.setValue("updateTime", LocalDateTime.now());
        metaObject.setValue("updateUser",new Long(1));
    

上面两个方法都是在这一个类中,代码如下:

@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler 
    @Override
    public void insertFill(MetaObject metaObject) 
        log.info("公共字段自动填充[insert]...");
        log.info(metaObject.toString());
        metaObject.setValue("createTime", LocalDateTime.now());
        metaObject.setValue("updateTime",LocalDateTime.now());
        metaObject.setValue("createUser",new Long(1));
        metaObject.setValue("updateUser",new Long(1));
    

    /**
     * @Description: 更新操作自动填充
     * @Author: KSQC
     */
    @Override
    public void updateFill(MetaObject metaObject) 
        log.info("公共字段自动填充[update]...");
        log.info(metaObject.toString());
        metaObject.setValue("updateTime", LocalDateTime.now());
        metaObject.setValue("updateUser",new Long(1));
    

在上面的方法写完成后,我们直接运行程序,然后新增和修改员工就会进入这些方法然后进行字段填充操作。

二、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

以上是关于字段填充神器之MetaObjectHandler的主要内容,如果未能解决你的问题,请参考以下文章

.net测试篇之测试神器Autofixture Generator使用与自定义builder

PS+SKETCH通用!帮你提高效率的自动填充神器插件CRAFT

如何使用 UIPickerView 在一个视图中填充不同的文本字段?

MySQL数据库

如何设计Sql数据库中的字段为自动填充数据并自动加1的自增量

NoSql神器之应用剖析