Mybatis-Plus3.2.0 MetaObjectHandler 無法進(jìn)行公共字段全局填充
問題描述
最近在做的這個(gè)項(xiàng)目架構(gòu)組對(duì)于配置文件決定,采取的是 .xml 配置文件
一個(gè)數(shù)據(jù)中臺(tái)項(xiàng)目,因?yàn)椴渴瓠h(huán)境比較復(fù)雜,可能需要適配阿里、騰訊、開源等環(huán)境和機(jī)房,所以配置文件和啟動(dòng)類為三類
之前寫的 MetaObjectHandler 都是采用的 SpringBoot 配置方式開發(fā),突然換成 .xml 配置文件,還是有不少坑的,其中就有配置的 MetaObjectHandler 死活不起作用 ⬆️🔥(上火)
問題代碼
這種方式放在 平常 SpringBoot 項(xiàng)目中,一點(diǎn)毛病沒有…
@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 中注冊(cè)
<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 開發(fā)框架,為什么還是要使用 .xml 配置文件的這種方式,如果有大佬知道,歡迎評(píng)論區(qū)留言或私信 👏
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis配置之<properties>屬性配置元素解析
這篇文章主要介紹了Mybatis配置之<properties>屬性配置元素解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07MyBatis Plus 實(shí)現(xiàn)多表分頁查詢功能的示例代碼
這篇文章主要介紹了MyBatis Plus 實(shí)現(xiàn)多表分頁查詢功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Java并行執(zhí)行任務(wù)的幾種方案小結(jié)
這篇文章主要介紹了Java并行執(zhí)行任務(wù)的幾種方案小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java使用BigDecimal進(jìn)行高精度計(jì)算的示例代碼
本篇文章主要介紹了Java使用BigDecimal進(jìn)行高精度計(jì)算的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09java通過證書訪問etcd的實(shí)現(xiàn)步驟
Etcd提供了多種語言的客戶端庫,本文主要介紹了java通過證書訪問etcd的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-05-05