問題: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