问题:java
用Maven搭建spring、springmvc、mybatis时,运行报错:spring
org.springframework.beans.factory.BeanDefinitionStoreException: Could not resolve bean definition resource pattern
[classpath:spring/applicationContext-*.xml]; nested exception is java.io.FileNotFoundException: class path resource [spring/] cannot be resolved to URL because it does not existmybatis
意思是说:
没法找到applicationContext-*.xml这个配置文件,由于这些文件不存在mvc
缘由:
在个人工程中,src/main/java下的mapper包中有mapper.java和mapper.xml文件,src/main/config目录有spring,mybatis,springmvc的配置文件
app
这两个路径下最终对应maven的运行路径时: maven
咱们知道,maven在扫描java文件夹时,不会扫描其中的.xml文件,由于它默认是扫描java文件的,这样mapper.xml就会丢失而致使报错,因此咱们会在pom文件中添加这样的配置:ui
<build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resources> </build>
上述配置的意思是:maven扫描src/main/java这个文件夹,而且要扫描全部.xml和.properties文件,这样一来能够解决maven扫描mapper.xml缺失的问题,可是因为修改了默认的resource目录,致使src/main/resources的全部文件都不能被扫描,也就出现了applicationContext文件不能被扫描的错误,因此应该配置两个:
spa
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
因为修改了默认的resource目录,致使src/main/resources的全部文件都不能被扫描,所以还要配多一个
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
转自:https://blog.csdn.net/jeffleo/article/details/55271858.net