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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • notifyDataSetChanged使用总结

    notifyDataSetChanged使用总结在做客户端项目时,想使用notifidatasetchanged来刷新ListView,但是一直报错,ThecontentoftheadapterhaschangedbutListViewdidnotreceivea notification,先总结notifidatasetchanged使用要点如下:1.首先要包装adapter监视的数据是同一个对象

    2025年7月6日
    1
  • 搜索,推荐,广告系统架构及算法技术资料大合集吐血整理——2020年终分享

    搜索,推荐,广告系统架构及算法技术资料大合集吐血整理——2020年终分享算法学习资料:AI_Tutorial各大厂架构开发学习资源;精华机器学习,NLP,图像识别等人工智能领域学习资料,搜索,推荐,广告系统架构及算法技术资料吐血整理你还在为学习算法摸不着头脑么?你还在为技术调研各种Google么?AI的牛b吹不上去?盯紧了,这里就是你的2020女朋友~。本项目会持续关注AI落地的一些优质技术资料。大家也可以去网站投稿。算法学习资料:AI_Tutorial…

    2022年6月2日
    40
  • 直播界的新玩法:你又套路用户!只要钱到位,榜单全干碎

    直播界的新玩法:你又套路用户!只要钱到位,榜单全干碎今天早上好心市民王先生(公众号:hxsmwxs)在翻看AppStore榜单的时候,发现今天凌晨(25号0:00分)榜单更新后有三款应用刷榜,乍一看是两款游戏,一款应用,但好心市民王先生(公众号:hxsmwxs)在下载之后发现了其中一款的秘密,就是下面这款【战舰世界】看看它的排名变化,真是舍得花钱啊下面我们一步步的分析这款应用所有用户点开从名称到截图乍一看就是一款游戏,但从描述中不难发现,他就是一…

    2022年6月5日
    61
  • 实战模拟│JWT 登录认证「建议收藏」

    实战模拟│JWT 登录认证「建议收藏」分布式跨域认证的解决新方案

    2022年8月16日
    8
  • PrintWriter and BufferedWriter区别和使用「建议收藏」

    PrintWriter and BufferedWriter区别和使用「建议收藏」区别:BufferedWriter:将文本写入字符输出流,缓冲各个字符从而提供单个字符,数组和字符串的高效写入。通过write()方法可以将获取到的字符输出,然后通过newLine()进行换行操作。并且BufferedWriter只能对字符流进行操作。PrintWriter:相对于BufferedWriter的好处在于,如果PrintWriter开启了自动刷新,那么当PrintWri…

    2022年6月5日
    37
  • 收集了三年的最好的设计站点

    收集了三年的最好的设计站点

    2021年11月15日
    43

发表回复

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

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