SpringBoot+MyBatis整合中的坑以及Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required错误详解

SpringBoot+MyBatis整合中的坑以及Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required错误详解今天想重新学习一下之前大学学过的Springboot框架。然后参考此篇文章进行学习,https://blog.csdn.net/saytime/article/details/74783296使用SpringToolSuit的开发工具。整个项目架构如下图所示。然后开始遇到各种坑,特此记下来,以免以后犯同样的错误。坑一:在Mapper层,它是需要加@Mapper注解的,但是网上又有人加@…

大家好,又见面了,我是你们的朋友全栈君。

今天想重新学习一下之前大学学过的Springboot框架。然后参考此篇文章进行学习,https://blog.csdn.net/saytime/article/details/74783296 使用Spring Tool Suit的开发工具。整个项目架构如下图所示。然后开始遇到各种坑,特此记下来,以免以后犯同样的错误。
项目架构

坑一:在Mapper层,它是需要加@Mapper注解的,但是网上又有人加@respository,两个注解混起来了,其实是任选其一都可以的。一般都是使用@Mapper。但是如果在Mapper层中加了注解,在配置主类SpringBootMybatisApplication里面就不需要@MapperScan(“com.example.demo.mapper”)扫描注解,在配置类里加扫描注解的意思是将这个包下所有的都注解成Mapper。

坑二:使用STS创建的SpringBoot项目,其中配置文件默认的是application.properties,一般在这个文件里面配置数据源。但是这个文件想要起作用,则必须在配置主类中加入@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})自动注入,否则该配置文件中的配置无效。会报出Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.错误
配置文件

但是此时如果加了这个注解,由于Mybatis的依赖中的jar包,
< dependency>
< groupId>org.mybatis.spring.boot< /groupId>
< artifactId>mybatis-spring-boot-starter< /artifactId>
< version>1.3.2</ version>
< /dependency>
mybatis-spring-1.3.2中取消了自动注入SqlSessionFactory 和 SqlSessionTemplate,所以会报出Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required错误。
那得想解决办法啊,于是网上搜解决办法,参考此文, 创建了一个基类,然后让自己的dao去继承。https://www.cnblogs.com/hawk0035/p/3337283.html?utm_source=tuicool
但是我的Mapper层是使用了注解版Mybatis,是一个接口,不能继承类。所以这个办法就不能用了。
既然mybatis-spring-1.3.2中取消了自动注入,那我就换成低版本的mybatis-spring-1.1.1,但是事实还是一样,没有任何改变。中途由于maven仓库换mybatis-spring版本,我以为是相关JAR包没下载完成,所以又把jar包删了重新下,又浪费了很多时间。。。
那就想办法不要@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})自动注入,所以必须把application.properties配置文件改为application.yml。问题终于解决了。

坑三:由于我配置文件中加了Mongodb的依赖,导致运行的时候还报了错。删除之后就OK了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131414.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mac环境变量的配置

    Mac环境变量的配置Mac系统下进行PATH配置1.打开配置文件vi ~/.bash_profile2.编辑配置文件export路径名=/Users/…/PATH=$路径名:$PATH 3.保存配置文件终端:键入esc键终端:输入:wq,退出4.立即生效终端:键入source ~/.bash_profile测试配置是否成功…

    2022年6月16日
    72
  • linux进程通信之信号[通俗易懂]

    linux进程通信之信号

    2022年1月21日
    40
  • BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)

    BH1750光照传感器超详细攻略(从原理到代码讲解,看完你就懂了)BH1750FVI是一款数字型光强度传感器集成芯片,内部由光敏二极管、运算放大器、ADC采集、晶振等组成。PD二极管通过光生伏特效应将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中(注:进入光窗的光越强,光电流越大,电压就越大,所以通过电压的大小就可以判断光照大小,但是要注意的是电压和光强虽然是一一对应的,但不是成正比的,所以这个芯片内部是做了线性处理的,这也是为什么不直接用光敏二极管而用集成IC的原因)。

    2022年6月2日
    141
  • Java Socket(转载)

    Java Socket(转载)

    2021年8月12日
    59
  • Qt 之等待提示框(QMovie)

    Qt 之等待提示框(QMovie)简述关于gif的使用在实际项目中我用的并不多,因为我感觉瑕疵挺多的,很多时候锯齿比较严重,当然与图存在很大的关系。关于生成gif的方法可以提供一个网站preloaders,基本是可以满足需求的。简述效果源码更多参考效果由于录制程序的原因,引起gif效果不清晰,可忽略。源码通过使用QMovie来设置动画、可以调用setSpeed()设置动画速度、start()启动动画、stop()停止动画等。Q

    2022年6月16日
    111
  • java监听设计模式(java观察者设计模式)

    java监听设计模式(java观察者设计模式)

    2021年8月2日
    65

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号