Spring Boot: java.io.FileNotFoundException: class path resource

4,434 阅读1分钟

初学spring遇到的问题,在配置类中通过@PropertySource("classpath:com/jerry/springdemo/ch2/el/test.properties")加载注入属性配置文件。报错:

Caused by: java.io.FileNotFoundException: class path resource [com/jerry/springdemo/ch2/el/test.properties] cannot be opened because it does not exist
	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:172)
	at org.springframework.core.io.support.EncodedResource.getInputStream(EncodedResource.java:150)
	at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:98)
	at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:72)
	at org.springframework.core.io.support.PropertiesLoaderUtils.loadProperties(PropertiesLoaderUtils.java:58)
	at org.springframework.core.io.support.ResourcePropertySource.<init>(ResourcePropertySource.java:83)
	at org.springframework.context.annotation.ConfigurationClassParser.processPropertySource(ConfigurationClassParser.java:336)
	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:252)
	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:229)
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:196)
	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:165)
	... 8 more

路径没有问题,原因是: Intellij IDEA默认编译只编译java目录下的java文件到target目录中,其它文件不会被编译识别。在pom.xml文件中添加编译构件资源配置:

<build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
        </resources>
</build>

这样就可以识别编译支持所有文件。