确认
当前程序版本
3.5.9
问题描述
springboot3.4.0 环境下 扫描mapper的时候在我的代码里扫描mapper后 又继续去依赖包里扫描mapper 但是依赖包里没有mapper目录导致报错,具体看截图, 使用springboot3.2.4 ,没这个问题
详细堆栈日志
org.springframework.beans.factory.BeanDefinitionStoreException: I/O failure during classpath scanning
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:515) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:351) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:277) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.mybatis.spring.mapper.ClassPathMapperScanner.doScan(ClassPathMapperScanner.java:255) ~[mybatis-spring-3.0.4.jar!/:3.0.4]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.scan(ClassPathBeanDefinitionScanner.java:255) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.mybatis.spring.mapper.MapperScannerConfigurer.postProcessBeanDefinitionRegistry(MapperScannerConfigurer.java:406) ~[mybatis-spring-3.0.4.jar!/:3.0.4]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:791) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:609) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.4.0.jar!/:3.4.0]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752) ~[spring-boot-3.4.0.jar!/:3.4.0]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.0.jar!/:3.4.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.4.0.jar!/:3.4.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361) ~[spring-boot-3.4.0.jar!/:3.4.0]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350) ~[spring-boot-3.4.0.jar!/:3.4.0]
at com.netease.ysf.pri.HeadquartersMain.main(HeadquartersMain.java:11) ~[classes!/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[headquarters-1.0-SNAPSHOT.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) ~[headquarters-1.0-SNAPSHOT.jar:na]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[headquarters-1.0-SNAPSHOT.jar:na]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[headquarters-1.0-SNAPSHOT.jar:na]
Caused by: java.io.FileNotFoundException: JAR entry com/netease/ysf/pri/mapper/ not found in D:\idea\workspace\rockethead\spacecenter\headquarters\target\headquarters-1.0-SNAPSHOT.jar!/BOOT-INF/lib/authenticator-spring-boot-starter-1.0-SNAPSHOT.jar
at org.springframework.boot.loader.jar.JarURLConnection.throwFileNotFound(JarURLConnection.java:175) ~[headquarters-1.0-SNAPSHOT.jar:na]
at org.springframework.boot.loader.jar.JarURLConnection.connect(JarURLConnection.java:98) ~[headquarters-1.0-SNAPSHOT.jar:na]
at org.springframework.boot.loader.jar.JarURLConnection.getJarFile(JarURLConnection.java:106) ~[headquarters-1.0-SNAPSHOT.jar:na]
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.doFindPathMatchingJarResources(PathMatchingResourcePatternResolver.java:834) ~[spring-core-6.2.0.jar!/:6.2.0]
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:710) ~[spring-core-6.2.0.jar!/:6.2.0]
at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:350) ~[spring-core-6.2.0.jar!/:6.2.0]
at org.springframework.context.support.AbstractApplicationContext.getResources(AbstractApplicationContext.java:1549) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.springframework.context.support.GenericApplicationContext.getResources(GenericApplicationContext.java:263) ~[spring-context-6.2.0.jar!/:6.2.0]
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.scanCandidateComponents(ClassPathScanningCandidateComponentProvider.java:457) ~[spring-context-6.2.0.jar!/:6.2.0]
... 24 common frames omitted

Comment From: huayanYu
你觉得是Mybatis的问题还是什么?
Comment From: miemieYaho
搜issue
Comment From: wanggk-git
@FuGaoYing 请问问题解决了吗?我遇到了相同的问题,目前查询到的结果估计是spring的bug,参照下面链接,看描述spring6.2.2版本貌似已经解决这个问题,但对应的springboot版本应该还得等。 https://github.com/spring-projects/spring-framework/issues/34216