Springboot 项目 无法读取resources下的mapper文件夹的.xml文件
之前学习的时候遇到的一个问题
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/jevin98/demo/config/dao/SessionFactoryConfiguration.class]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'class path resource [classpath*:/mapper/**.xml]'; nested exception is java.io.FileNotFoundException: class path resource [classpath*:/mapper/**.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1796) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:860) ~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878) ~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) ~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
主要关注此行:
Failed to parse mapping resource: 'class path resource [classpath*:/mapper/**.xml]'; nested exception is java.io.FileNotFoundException: class path resource [classpath*:/mapper/**.xml] cannot be opened because it does not exist
类路径资源[classpath*:/mapper/**]。不能打开xml,因为它不存在
没道理啊?我的文件目录
resources下明明就有这个mapper文件夹,和这个xml文件,为什么会找不到呢
解决思路:
首先,确定了文件名和application,properties下的路径名没错
其次,检查一下测试的方法
问题可能主要出现在配置mapper上,所以检查SessionFactoryConfiguration
关于sqlSessionFactory:
https://blog.csdn.net/u013412772/article/details/73648537
关于sqlSeesionFactoryBean: https://blog.csdn.net/u013412772/article/details/73648537
仔细检查路径和类基本上都没错,知道看到这行:
sqlSessionFactoryBean.setMapperLocations(resolver.getResource(packageSearchPath));
sqlSessionFactoryBean调用的方法中setMapperLocations可能是导致读取不到mapper资源的原因
关于PathMatchingResourcePatternResolver : https://www.cnblogs.com/loveLands/articles/9863195.html
果然getResource 和 getResources不同
getResource():
1.从类的根路径下获取文件
getResources():
1.获取所有类路径下的指定文件
可以通过classpath前缀指定,从所有的类路径下获取指定文件,与classpath前缀的区别是classpath前缀只能获取当类路径下的资源文件,而classpath前缀可以获取所有类路径下的资源文件,包括jar包中的。
最新文章
- CentOS 7 环境配置
- Javascript知识点记录(二)
- iPhone CSS media query(媒体查询)
- openjudge-膨胀的木棍
- apache部署多个项目
- 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建
- oracle 清除当前用户的回收站
- CSS常用布局整理(二)
- Tomcat SSL 设置
- 数据结构(树链剖分):COGS 2109. [NOIP2015] 运输计划
- 【转】android windowSoftInputMode
- HTTP 错误 500.19 – Internal Server Error web.config 文件的 system.webServer/httpErrors 节中不允许绝对物理路径“C:\inetpub\custerr”[转]
- android viewpager 深究
- 使用DFA算法对敏感词进行过滤
- 使用Chrome浏览器访问谷歌和维基百科
- Duplicate 复制数据库 搭建Dataguard
- Kubernetes资源管理
- jmeter配置脚本录制进行抓包并快速分析、定位接口问题
- 解决WPF两个图片控件显示相同图片因线程占用,其中一个显示不全的问题
- WebAPI的AuthorizeAttribute扩展类中获取POST提交的数据