无法从 Spring 属性访问文件

Can't access to a file from Spring properties

我在做什么:

我在 MyClass.java:

中从 xsd 文件创建 InputStream
@Value("${my.xsd.schema}")
private String xsdUrl;
...
InputStream fileXsd = new FileInputStream(new File(xsdUrl));

我的 project.properties 文件:

my.xsd.schema=src/main/resources/my-schema.xsd

我的-schema.xsd 在:

my-project
|   src
    |   main
        |   resources
            |   my-schema.xsd
            |   project.properties
        |   java
            |   MyClass.java

我的错误是:

java.io.FileNotFoundException: src\main\resources\my-schema.xsd

问题:我做错了什么?我在哪里可以找到我的-schema.xsd?

我想您正在使用 Maven。 Maven 将所有资源放在类路径的根目录中。所以你的 属性 的值需要只是 my-schema.xsd.

然后使用Spring的ClassPathResource(xsdUrl).getInputStream()打开你的文件。

如果您从 IDE 内部 运行 这样做,您可能 运行 会遇到麻烦,因为它不会 运行 mvn package。相反,它 运行 直接将您的二进制文件发送给您。