千家信息网

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

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章给大家介绍使用Mybatis-Plus时的SqlSessionFactory问题及处理是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用Mybatis-Plus时
千家信息网最后更新 2025年11月07日使用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安全错误 数据库的锁怎样保障安全 dell服务器32核 联合国商贸数据库查不到数据 linux服务器域名绑定 饥荒联机版如何快速启动服务器 小破孩网络安全宣传 在服务器里玩建筑大师 浏览器解析和服务器解析 上海可常互联网科技有限公司 倩女ol有外国服务器吗 安卓软件开发教材 山西正规软件开发介绍 gdc服务器播放列表模板 国资网络安全上市公司 宜良信息化软件开发零售价格 软件开发项目计划书6 互联网科技公司2021财报 计算机系网络技术是什么 php开发学什么软件开发 丰镇软件开发项目管理 达梦数据库怎么备份库 萤石云视频存储nas服务器连接 香港代理服务器免费 数据库电话号码有横杠 西峰有软件开发培训 属于数据库系统的组成部分的是 网络安全宣传周图片作品简介 手机上阿里云服务器如何续费 网络安全渗透培训 学习软件开发在哪个网站 百望税控盘连接服务器失败怎么办
0