问题详情:

使用SpringMVC 参照官方文档使用 MetaObjectHandler 接口进行自动注入无效
debug 代码根本未进入方法
MetaObjectHandler代码如下:

public class MyMetaObjectHandler implements MetaObjectHandler {

    // 插入时的填充策略
    @Override
    public void insertFill(MetaObject metaObject) {
        // setFieldValByName(String fieldName, Object fieldVal, MetaObject
        System.out.println("wdadaw");
        this.setFieldValByName("createTime", new Date(), metaObject);
        this.setFieldValByName("modifyTime", new Date(), metaObject);
    }

    // 更新时的填充策略
    @Override
    public void updateFill(MetaObject metaObject) {
        System.out.println("wdadaw22");
        this.setFieldValByName("modifyTime", new Date(), metaObject);
    }
}

解决方案:

在 id为sqlSessionFactory的Bean中设置globalConfig,将其中的metaObjectHandler 设置为自己的注入类

<bean id="sqlSessionFactory" class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!-- 自动扫描Mapping.xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
        <!--        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>-->
        <property name="typeAliasesPackage" value="com.ssm.plus.entity.*"/>
        <!-- 分页 -->
        <!--        <property name="plugins">-->
        <!--            <array>-->
        <!--                <bean class="com.baomidou.mybatisplus.extension.plugins.pagination.Page" />-->
        <!--            </array>-->
        <!--        </property>-->
        <!-- 全局配置注入 -->
        <property name="globalConfig" ref="globalConfig" />

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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐