当前位置: 首页 > 知识库问答 >
问题:

java - springboot自动装配扫描mapper失效?

诸经略
2023-09-28

使用springboot集成mybatis时,在配置文件中配置了扫描xml文件路径,
但是运行的时候告诉我找不到对应的mapper这个bean,这貌似没有给我进行自动装配,如果所示:

image.png

yml配置如下

image.png

这个是mapper对应路径,在mapper接口上加上@Mapper注解或者启动类MapperScan后就可以正常使用,但是想知道为什么,在yml中不是配置的扫描路径没有生效,不会给我自动去扫描

image.png

尝试着打断点 ,还没有到装配环节就出现了错误,不知道问题在哪,有大佬能解答吗

共有2个答案

彭琛
2023-09-28

确认一下 mapper 的路径
到底是 mapper.service,还是 mapper/service

孔瑾瑜
2023-09-28

这个问题的原因可能在于你的 MyBatis 配置不正确,或者 Spring Boot 的自动装配没有正确地识别你的 Mapper 接口。以下是几种可能的解决方案:

  1. 检查 @MapperScan 的路径配置。在 Spring Boot 的主类上,确认 @MapperScan 的路径设置正确,它应该扫描到你的 Mapper 接口的路径。在上述的 yml 配置中,你的路径应该是正确的,但需要确保所有的配置文件都被正确地读取和加载。
  2. 检查 Mapper 接口上的 @Mapper 注解。虽然不是必须的,但这个注解可以明确地告诉 Spring Boot 这个接口是一个 Mapper,应该被自动装配。如果移除了这个注解,可能就会出现你所描述的问题。
  3. 检查 MyBatis 的版本。在某些情况下,不同版本的 MyBatis 对 @MapperScan 的支持可能会有所不同。如果你的 MyBatis 版本过低,可能需要升级到新版本。
  4. 检查 Spring Boot 的版本。不同版本的 Spring Boot 对 MyBatis 的支持可能会有所不同。如果你的 Spring Boot 版本过低,可能需要升级到新版本。
  5. 检查你的项目结构和配置。确保所有的配置文件都被正确地读取和加载,确保你的项目结构符合 Spring Boot 和 MyBatis 的要求。

尝试调整上述几个方面,看是否可以解决你的问题。如果还有问题,可能需要提供更多的信息,比如具体的代码和错误信息。

 类似资料:
  • 主要内容:1.分析,2.样例讲解1,3.样例讲解2,4.总结1.分析 先看@SpringBootApplication @SpringBootConfiguration:标记当前类为配置类 @EnableAutoConfiguration:开启自动配置 @ComponentScan:扫描主类所在的同级包以及下级包里的Bean @EnableAutoConfiguration: @Import(AutoConfigurationImportSelector.

  • 主要内容:1.SpringBoot自动装配原理,2.BeanFactory和ApplicationContext的区别,3.Spring容器是什么1.SpringBoot自动装配原理 BFPP:BeanFactoryPostProcessor BPP:BeanPostProcessor BDRPP:BeanDefinitionRegistryPostProsessor 1.当启动SpringBoot程序时候,创建SpringApplication的对象,在对象的构造方法中进行对某些参数的初始化工

  • 本文向大家介绍SpringBoot自动装配原理详解,包括了SpringBoot自动装配原理详解的使用技巧和注意事项,需要的朋友参考一下 首先对于一个SpringBoot工程来说,最明显的标志的就是 @SpringBootApplication它标记了这是一个SpringBoot工程,所以今天的 SpringBoot自动装配原理也就是从它开始说起。 自动装配流程 首先我们来看下@SpringBoot

  • 本文向大家介绍详解spring自动扫描包,包括了详解spring自动扫描包的使用技巧和注意事项,需要的朋友参考一下 配置文件 前面的例子我们都是使用XML的bean定义来配置组件。在一个稍大的项目中,通常会有上百个组件,如果这些组件采用XML的bean定义来配置,显然会增加配置文件的体积,查找及维护起来也不太方便。 Spring2.5为我们引入了组件自动扫描机制,它可以在类路径底下寻找标注了@Co

  • 简介 几乎每个渗透测试项目都需要遵循严格的日程,多数由客户的需求或开发交谈日期决定。对于渗透测试者,拥有一种工具,它可以在很短的时间内执行单个应用上的多个测试,来尽可能在排期内识别最多漏洞很有帮助。自动化漏洞扫描器就是完成这种任务的工具,它们也用于发现替代的利用,或者确保渗透测试中不会遗漏了明显的事情。 Kali 包含一些针对 Web 应用或特定 Web 漏洞的漏洞扫描器。这一章中,我们会涉及到一

  • 我对spring boot相当陌生,正在尝试使用Java持久性API hibernate mySQL持久性层构建spring boot应用程序。但当我试图使用entityManager获取所有记录时。createNamedQuery(“从学生s中选择*”,学生.class)。getResultList()它给了我以下异常。 Java语言lang.IllegalArgumentException:未