千家信息网

使用Mybatis-Plus时的SqlSessionFactory问题及处理是怎样的

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家介绍使用Mybatis-Plus时的SqlSessionFactory问题及处理是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用Mybatis-Plus时
千家信息网最后更新 2026年11月01日使用Mybatis-Plus时的SqlSessionFactory问题及处理是怎样的

这篇文章给大家介绍使用Mybatis-Plus时的SqlSessionFactory问题及处理是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

使用Mybatis-Plus时的SqlSessionFactory问题

前些日子工作中出现一个问题,项目中使用了MybatisPlus,然后出现了一个问题,Druid的其他的配置都可以正常使用,但是配置的SqlSessionFactory这个bean不能被加载,我在这个bean中加载的mybatis-config.xml文件也不能被加载,因为代码里使用了拦截器进行数据库的自动分页,找到问题后在这里mark一下。

其实这里不能加载的原因是因为MybatisPlus中自定义了MybatisSqlSessionFactoryBean这个类,而这个类是实现了接口FactoryBean, InitializingBean, ApplicationListener,而在mybatis中有一个类也实现了这些接口,SqlSessionFactoryBean,所以在mybatisplus的配置文件中配置SqlSessionFactoryBean时需要换成mybatisplus中自定义的这个类MyBatisSqlSessionFactoryBean,并在类中加载对应的mybatis-config.xml文件。

贴一下这两个类的源码,看一眼就明白了

//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package org.mybatis.spring;import java.io.IOException;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import org.apache.ibatis.builder.xml.XMLConfigBuilder;import org.apache.ibatis.builder.xml.XMLMapperBuilder;import org.apache.ibatis.cache.Cache;import org.apache.ibatis.executor.ErrorContext;import org.apache.ibatis.io.VFS;import org.apache.ibatis.logging.Log;import org.apache.ibatis.logging.LogFactory;import org.apache.ibatis.mapping.DatabaseIdProvider;import org.apache.ibatis.mapping.Environment;import org.apache.ibatis.plugin.Interceptor;import org.apache.ibatis.reflection.factory.ObjectFactory;import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;import org.apache.ibatis.session.Configuration;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.apache.ibatis.transaction.TransactionFactory;import org.apache.ibatis.type.TypeHandler;import org.mybatis.spring.transaction.SpringManagedTransactionFactory;import org.springframework.beans.factory.FactoryBean;import org.springframework.beans.factory.InitializingBean;import org.springframework.context.ApplicationEvent;import org.springframework.context.ApplicationListener;import org.springframework.context.event.ContextRefreshedEvent;import org.springframework.core.NestedIOException;import org.springframework.core.io.Resource;import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;import org.springframework.util.Assert;import org.springframework.util.ObjectUtils;import org.springframework.util.StringUtils;public class SqlSessionFactoryBean implements FactoryBean, InitializingBean, ApplicationListener {    private static final Log LOGGER = LogFactory.getLog(SqlSessionFactoryBean.class);    private Resource configLocation;    private Configuration configuration;    private Resource[] mapperLocations;    private DataSource dataSource;    private TransactionFactory transactionFactory;    private Properties configurationProperties;    private SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();    private SqlSessionFactory sqlSessionFactory;    private String environment = SqlSessionFactoryBean.class.getSimpleName();    private boolean failFast;    private Interceptor[] plugins;    private TypeHandler[] typeHandlers;    private String typeHandlersPackage;    private Class[] typeAliases;    private String typeAliasesPackage;    private Class typeAliasesSuperType;    private DatabaseIdProvider databaseIdProvider;    private Class vfs;    private Cache cache;    private ObjectFactory objectFactory;    private ObjectWrapperFactory objectWrapperFactory;    public SqlSessionFactoryBean() {    }     。。。。。。}

还有MybatisSqlSessionFactoryBean的

//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.baomidou.mybatisplus.spring;import com.baomidou.mybatisplus.MybatisConfiguration;import com.baomidou.mybatisplus.MybatisXMLConfigBuilder;import com.baomidou.mybatisplus.entity.GlobalConfiguration;import com.baomidou.mybatisplus.enums.IEnum;import com.baomidou.mybatisplus.exceptions.MybatisPlusException;import com.baomidou.mybatisplus.handlers.EnumTypeHandler;import com.baomidou.mybatisplus.mapper.SqlRunner;import com.baomidou.mybatisplus.toolkit.GlobalConfigUtils;import com.baomidou.mybatisplus.toolkit.PackageHelper;import java.sql.SQLException;import java.util.HashSet;import java.util.Iterator;import java.util.Properties;import java.util.Set;import javax.sql.DataSource;import org.apache.ibatis.builder.xml.XMLMapperBuilder;import org.apache.ibatis.cache.Cache;import org.apache.ibatis.executor.ErrorContext;import org.apache.ibatis.io.VFS;import org.apache.ibatis.logging.Log;import org.apache.ibatis.logging.LogFactory;import org.apache.ibatis.mapping.DatabaseIdProvider;import org.apache.ibatis.mapping.Environment;import org.apache.ibatis.plugin.Interceptor;import org.apache.ibatis.reflection.factory.ObjectFactory;import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;import org.apache.ibatis.session.Configuration;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.apache.ibatis.transaction.TransactionFactory;import org.apache.ibatis.type.EnumOrdinalTypeHandler;import org.apache.ibatis.type.TypeHandler;import org.apache.ibatis.type.TypeHandlerRegistry;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.transaction.SpringManagedTransactionFactory;import org.springframework.beans.factory.FactoryBean;import org.springframework.beans.factory.InitializingBean;import org.springframework.context.ApplicationEvent;import org.springframework.context.ApplicationListener;import org.springframework.context.event.ContextRefreshedEvent;import org.springframework.core.NestedIOException;import org.springframework.core.io.Resource;import org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy;import org.springframework.util.Assert;import org.springframework.util.ObjectUtils;import org.springframework.util.StringUtils;public class MybatisSqlSessionFactoryBean implements FactoryBean, InitializingBean, ApplicationListener {    private static final Log LOGGER = LogFactory.getLog(SqlSessionFactoryBean.class);    private Resource configLocation;    private Configuration configuration;    private Resource[] mapperLocations;    private DataSource dataSource;    private TransactionFactory transactionFactory;    private Properties configurationProperties;    private SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();    private SqlSessionFactory sqlSessionFactory;    private String environment = MybatisSqlSessionFactoryBean.class.getSimpleName();    private boolean failFast;    private Interceptor[] plugins;    private TypeHandler[] typeHandlers;    private String typeHandlersPackage;    private Class[] typeAliases;    private String typeAliasesPackage;    private String typeEnumsPackage;    private Class typeAliasesSuperType;    private DatabaseIdProvider databaseIdProvider;    private Class vfs;    private Cache cache;    private ObjectFactory objectFactory;    private ObjectWrapperFactory objectWrapperFactory;    private GlobalConfiguration globalConfig = GlobalConfigUtils.defaults();    public MybatisSqlSessionFactoryBean() {    }     。。。。。。}

springboot+mybatis-plus报错Property'sqlSessionFactory'or'sqlSessionTemplate'are required

报错信息:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'TBaseAuthController': Unsatisfied dependency expressed through field 'tBaseAuthService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'TBaseAuthServiceImpl': Unsatisfied dependency expressed through field 'baseMapper'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'TBaseAuthMapper' defined in file [D:\浏览器下载\myframe\yss-server\target\classes\com\yss\cn\modules\mapper\TBaseAuthMapper.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
…
Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

解决方案:

添加jar包:

 org.mybatis.spring.boot mybatis-spring-boot-starter 1.3.2

关于使用Mybatis-Plus时的SqlSessionFactory问题及处理是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

问题 配置 文件 处理 内容 接口 更多 中加 帮助 不错 两个 代码 信息 兴趣 原因 小伙 小伙伴 数据 数据库 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网的科技 深圳恒合互联网络科技有限公司 互联网科技有限公司图片 米客互联网科技 碳银互联网科技有限公司 互联网科技有限公司 翻译 新华互联网科技校企合作 哈尔滨秒房互联网科技有限公司 昭通互联网科技选哪家 广州市恰铎互联网科技有限公司 中国科技创新与世界互联网大会 广州新华互联网科技学校电竞方面 互联网公司高科技产品 广州千川互联网科技有限公司 黑云互联网科技有限公司 互联网科技资金流入 新氧科技和美国互联网有关系吗 西安左小互联网科技有限公司 唐山双旺合互联网科技产业园 科技发展第三阶段互联网时代 科技互联网 A股互联网金融科技公司 互联网科技开发公司 海南科技产业互联网平台 晓花互联网科技有限公司网址 呼和浩特新华互联网科技学院 天津腾达互联网科技有限公司 银行科技岗属于互联网吗 云鲸互联网络科技有限公司 科技美学互联网 艺术
0