Mybatis-Plus3.2.0 MetaObjectHandler 无法进行公共字段全局填充

 更新时间:2019年11月25日 14:23:41   作者:马马马马马百万  
这篇文章主要介绍了Mybatis-Plus3.2.0 MetaObjectHandler 无法进行公共字段全局填充,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

问题描述

最近在做的这个项目架构组对于配置文件决定,采取的是 .xml 配置文件

一个数据中台项目,因为部署环境比较复杂,可能需要适配阿里、腾讯、开源等环境和机房,所以配置文件和启动类为三类

之前写的 MetaObjectHandler 都是采用的 SpringBoot 配置方式开发,突然换成 .xml 配置文件,还是有不少坑的,其中就有配置的 MetaObjectHandler 死活不起作用 ⬆️🔥(上火)

问题代码

这种方式放在 平常 SpringBoot 项目中,一点毛病没有…

@Component
public class MybatisPlusObjectHandler implements MetaObjectHandler {

  @Override
  public void insertFill(MetaObject metaObject) {
    Date now = new Date();

    Object crteTime = getFieldValByName("crteTime", metaObject);
    if (Objects.isNull(crteTime)) {
      setFieldValByName("crteTime", now, metaObject);
    }

    Object optTime = getFieldValByName("optTime", metaObject);
    if (Objects.isNull(optTime)) {
      setFieldValByName("optTime", now, metaObject);
    }

    setFieldValByName("invdFlag", TpcConstant.INVD, metaObject);
  }

  @Override
  public void updateFill(MetaObject metaObject) {
    Object optTime = getFieldValByName("optTime", metaObject);
    if (Objects.isNull(optTime)) {
      setFieldValByName("optTime", new Date(), metaObject);
    }
  }
}

解决方式

将 MybatisPlusObjectHandler 类上的 @Component 去掉,换成在 .xml 中注册

<bean class="xxx.xxx.xxx.MybatisPlusObjectHandler" id="myMetaObjectHandler"/>

  <bean id="globalConfiguration" class="com.baomidou.mybatisplus.core.config.GlobalConfig">
    <property name="metaObjectHandler" ref="myMetaObjectHandler"/>
  </bean>

  <bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
    <!-- 注入公共字段填充处理器 -->
    <property name="globalConfig" ref="globalConfiguration" />
  </bean>

问题解决 还是比较疑问 既然采用了 SpringBoot 开发框架,为什么还是要使用 .xml 配置文件的这种方式,如果有大佬知道,欢迎评论区留言或私信 👏

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring Boot实战之静态资源处理

    Spring Boot实战之静态资源处理

    这篇文章主要介绍了Spring Boot实战之静态资源处理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Spring Boot实现数据访问计数器方案详解

    Spring Boot实现数据访问计数器方案详解

    在Spring Boot项目中,有时需要数据访问计数器,怎么实现数据访问计数器呢?下面小编给大家带来了Spring Boot数据访问计数器的实现方案,需要的朋友参考下吧
    2021-08-08
  • maven插件maven-jar-plugin构建jar文件的详细使用

    maven插件maven-jar-plugin构建jar文件的详细使用

    maven-jar-plugin插件时maven中最常用的插件,也是maven构建Java程序执行包或者依赖包的默认插件,本文主要介绍了maven插件maven-jar-plugin构建jar文件的详细使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • Java面向对象选择题总结归纳

    Java面向对象选择题总结归纳

    今天小编就为大家分享一篇关于Java面向对象选择题总结归纳,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • java复制文件和java移动文件的示例分享

    java复制文件和java移动文件的示例分享

    本文主要介绍了java将文件夹下面的所有的jar文件拷贝到指定的文件夹下面的方法,需要的朋友可以参考下
    2014-02-02
  • Java线程(Thread)四种停止方式代码实例

    Java线程(Thread)四种停止方式代码实例

    这篇文章主要介绍了Java线程(Thread)四种停止方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • @ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现

    @ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现

    这篇文章主要介绍了@ConfigurationProperties绑定配置信息至Array、List、Map、Bean的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • 分析设计模式之模板方法Java实现

    分析设计模式之模板方法Java实现

    所谓模板方法模式,就是一个对模板的应用,就好比老师出试卷,每个人的试卷都是一样的,这个原版试卷就是一个模板,可每个人写在试卷上的答案都是不一样的,这就是模板方法模式。它的主要用途在于将不变的行为从子类搬到超类,去除了子类中的重复代码
    2021-06-06
  • Java环境变量配置教程

    Java环境变量配置教程

    这篇文章主要介绍了Java环境变量配置教程,简单介绍了java的环境变量设置方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Spring Cloud Hystrix 服务降级限流策略详解

    Spring Cloud Hystrix 服务降级限流策略详解

    这篇文章主要为大家介绍了Spring Cloud Hystrix 服务降级限流策略详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01

最新评论