美文网首页
排查Maven依赖

排查Maven依赖

作者: 追风的云月 | 来源:发表于2023-07-27 10:20 被阅读0次

    启动项目时报错

    image.png
    之前以为是jar包冲突,但是细看不是,并没有两个冲突的包。从analysis也看不出有多个版本,如果进行排除会直接报错
    image.png
    重复的情况是下文https://my.oschina.net/manlu/blog/3212669

    我的这种情况主要还是没有方法,netty-common.4.1.64.Final版本里的这个类里面没有。找到这个包发现果然是没有,那就是版本问题了。在dependencymanagement里面指定依赖版本可以解决这个问题。但是无法解释为什么会依赖到错误的版本。

    记一次mybatis集成spring
    原生集成
    可能会有各种版本问题。可能会自己集成mybatis、mybatis-spring、spring-tx
    最直观的现象是缺少类或者方法

    从前面的启动配置我们知道了,Mybatis的api入口是sqlSessionFactory。Mybatis提供SqlSessionDaoSupport抽象类来方便获取sqlSession。
    继承SqlSessionDaoSupport可以获得getSqlSession方法来得到sqlSession。然后通过sqlSession的api最终调用到mapper里配置的sql程序。

    MyBatisSpringConfig
    通过Java方式在Spring框架中注册MyBatis的核心组件Bean,并且配置声明式事务管理。
    在Spring中注册MyBatis的核心组件Bean:SqlSessionFactory,SqlSession,以及Spring的事务管理器。另外,在构建SqlSessionFactory时还可以注册MyBatis的xml映射器。
    注册MyBatis接口映射器

    通过MyBatis-Spring-Boot-Starter集成
    默认情况下,插件MyBatis-Spring-Boot-Starter将进行如下配置:

    自动检查Spring Boot的数据源配置并构建DataSource对象
    通过SqlSessionFactoryBean使用数据源构建并注册SqlSessionFactory对象
    从SqlSessionFactory中创建并注册一个SqlSessionTemplate实例,其实就是构建一个SqlSession对象
    自动扫描接口映射器,并将这些映射器与SqlSessionTemplate实例进行关联,同时将它们注册到Spring容器中

    导致这个问题可能有很多种
    Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

    1. 需要为项目添加 @MapperScan("top.jionjion.core.mapper.*") 指明所有的 Mapper 文件信息, Mybatis 会自动为其添加 sqlSessionFactory , 否则就会报错

    # SpringBoot3整合MyBatis报错:Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

    Spring下的Mybatis配置
    Mybatis-plus与Mybatis依赖冲突问题解决
    Spring的事务管理与MyBatis事物管理结合的原理

    相关文章

      网友评论

          本文标题:排查Maven依赖

          本文链接:https://www.haomeiwen.com/subject/gshoddtx.html