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


相关推荐

  • 一步设置Intellij IDEA 热部署处理方法

    一步设置Intellij IDEA 热部署处理方法  在IntellijIDEA中默认是关闭了自动编译的,可以按照如下1步设置开启自动编译:1.IDEA开启项目自动编译,进入设置,Build,Execut,Deployment-&gt;Compiler勾选中左侧的BuildProjectautomatically   …

    2022年6月1日
    77
  • html语言代码超链接,html 超链接 word html超链接代码

    html语言代码超链接,html 超链接 word html超链接代码【网页用word打开】可以直接打开word文件的超链接在网页中,怎么样…“打开/保存”是因浏览者的浏览器而异的,假如浏览者的电脑没有装word软件,那么,无论什么情况,都是打不开的,你只能选择保存(选择打开的话,电脑会让你选择使用什么软件来打开);如果浏览者的电脑装了word软件,那么如果电脑的安全级别高一些,一样会提示“打开/保存”,为的是防止直接打开病毒文件。要达到你要的效果,基本不可能,…

    2022年7月12日
    10
  • 39、文件的加密

    39、文件的加密

    2021年6月18日
    109
  • 如何运用LoadRunner进行http接口测试[通俗易懂]

    如何运用LoadRunner进行http接口测试[通俗易懂]目前自己有接触到的接口主要有三类:WCF、WebService及http接口,前两类是标准型的服务接口。这对于如何对接口进行功能测试,大家可以去网上查找下,有很多已有的测试工具,比如SoapUI、HttpClient等。在这里,我将主要针对如何运用LoadRunner进行接口的性能测试进行说明,其实LoadRunner也可以进行接口的功能测试。在这之前,我相信大家应该都清楚LoadRunner是

  • 微信小程序能跳转到外部链接吗(小程序跳转第三方网页)

    个人类型和海外类型的小程序不支持web-view标签也就是说个人申请的小程序,就别想跳转了!!!!1.开发的时候,我们难免碰到要跳转到其他网页中去那该怎么实现呢?2.例如我想点击一个按钮,跳转到百度(百度的网页还是在小程序中打开)3.wxml1.index.wxml(按钮页面)&lt;viewclass=’wrapper’&gt;&lt;b…

    2022年4月18日
    69
  • bilibili【考研英语词汇】

    bilibili【考研英语词汇】1、abandonvt.离弃,遗弃,抛弃;放弃。放纵,放弃a-否定(前缀)band-布带on布带不在自己身上,放纵,放弃bandn.条,带;乐队;波段;v.绑扎一群人绑在一起:乐队,一群bandagen绷带v用绷带扎缚-age永恒的(后缀)band-~ban-(前缀)banner横幅,旗帜(商店的旗帜)在小带子上写的字:slogan…

    2022年6月7日
    50

发表回复

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

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