您好,登錄后才能下訂單哦!
這篇文章主要介紹了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>
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Mybatis-Plus3.2.0 MetaObjectHandler 無法進行公共字段全局填充怎么辦”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。