在许多文档中,@ PropertySource的用法通常是这样的:

@PropertySource("classpath:/document.properties")


在我的Spring-boot项目中,我在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


在我看来,@ PropertySource默认情况下会在类路径中导入资源文件,所以我的问题是如何使用@PropertySource导入不在类路径中的资源文件?

最佳答案

试试这个:@PropertySource(值= {“文件:$ {config.path}”},编码=“ utf-8”)


  Indicate the resource location(s) of the properties file to be loaded. For example, "classpath:/com/myco/app.properties" or "file:/path/to/file".

关于java - Spring:如何使用@PropertySource导入不在classpath中的资源文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46657774/

10-10 10:52