Spring: @PropertySource注解如何能够引入非classpath下的资源文件?

网上的资料一般在使用@PropertySource的时候,都喜欢用@PropertySource("classpath:/document.properties")
这种形式

现在我把资源文件的路径放在application.properties里

config.path=/home/myservice/config.properties

然后在java源码里:

@PropertySource(value = {"${config.path}"}, encoding="utf-8")
public class MyConfig {
    @Value("${myconfig.index}")
    private String index;

    public String getIndex() {
       return index;
    }

}

但是出错:

Caused by: java.io.FileNotFoundException: class path resource [home/myservice/config.properties] cannot be opened because it does not exist

杨__羊羊
浏览 969回答 3
3回答

慕后森

配置的路径要相对于class文件的根目录,class path

天涯尽头无女友

使用:@PropertySource(value = "file:${config.path}",ignoreResourceNotFound = true)不要忘记@Configuration注解
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java