【发布时间】:2015-07-26 19:25:25
【问题描述】:
在 Spring-boot 应用程序中,我只有一个模块,并且能够注入配置文件,例如“my.properties”,位于src/main/resources,如下:
@Configuration
@PropertySource("/my.properties")
public class MyConf{
}
一切正常,但后来我创建了子模块,现在我将该配置文件移动到子模块中。当我启动主应用程序时,出现以下异常:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.myapp.MainApplication]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/home/jeanvaljean/workspace/mainmodule/secondarymodule/my.properties]
如我所见,我可以通过写作解决问题
@PropertySource("/src/main/resources/my.properties")
这样做,路径正确,可以加载文件了。
无论如何,这是一个糟糕的解决方案,我很确定还有一个更优雅、更灵活的替代方案。有什么解决办法吗?
【问题讨论】:
-
您可以尝试将代码更改为
@PropertySource("classpath:/my.properties")吗?从命令行或内部和 IDE 运行 maven 时是否出现此错误? -
嘿,这解决了问题。您能在答案中解释原因吗?
标签: java spring maven resources pom.xml