无法从 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
。相反,它 运行 直接将您的二进制文件发送给您。
我在做什么:
我在 MyClass.java
:
@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
。相反,它 运行 直接将您的二进制文件发送给您。