问题:
Springboot+Mybatis-plus项目,想使用Mybatis-plus的自动填充功能来补充创建时间、修改时间,但是我在插入数据的时候,发现该配置类并没有进入Spring容器,
//实体类也加上了注解并设置插入时填充
@TableField(value = "create_time",fill = FieldFill.INSERT ) //插入的时候自动填充
private Date createTime;
/**
* 数据修改时间
*/
@TableField(value = "update_time",fill = FieldFill.INSERT_UPDATE) //插入和修改的时候自动填充
private Date updateTime;
配置类
@Configuration
public class MybatisPlusConfig {
// 最新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
return interceptor;
}
@Bean
public MetaObjectHandler metaObjectHandler(){
return new MetaObjectHandler() {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
this.strictInsertFill(metaObject, "updateTime", Date.class, new Date()); // 起始版本 3.3.0(推荐)
// System.out.println("==============================进来了配置类");
// 先获取到创建人的值,再进行判断,如果为空,就进行填充,如果不为空,就不做处理
Object createBy = getFieldValByName("createBy", metaObject);
if (createBy == null){
setFieldValByName("createBy","system",metaObject);
}
//先获取到操作人的值,再进行判断,如果为空,就进行填充,如果不为空,就不做处理
Object updateBy = getFieldValByName("updateBy", metaObject);
if (updateBy == null){
setFieldValByName("updateBy","system",metaObject);
}
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
Object updateBy = getFieldValByName("updateBy", metaObject);
if (updateBy == null){
setFieldValByName("updateBy","system",metaObject);
}
}
};
}
}