我正在尝试访问 src/main/resources/XYZ/view 文件夹中的 xsd,其中 XYZ/view 文件夹是由我创建的,文件夹中有我需要进行 xml 验证的 abc.xsd。
当我每次得到结果为 null 时尝试访问 xsd 时,
我试过,
1)
@Value(value = "classpath:XYZ/view/abc.xsd")
private static Resource dataStructureXSD;
InputStream is = dataStructureXSD.getInputStream();
Source schemaSource = new StreamSource(is);
Schema schema = factory.newSchema(schemaSource);
2)
Resource resource = new ClassPathResource("abc.xsd");
File file = resource.getFile();
以及我为获取资源或类加载器等所做的更多尝试。
最后我得到了 xsd,
文件 file = new File(new ClassPathResource(“/src/main/resources/XYZ/view/abc.xsd”).getPath());模式模式 = factory.newSchema(file);
它正在工作,我想知道为什么其他两条路径会出错,或者为什么它对我不起作用而对其他人却很好。 :(
或者还有其他我想念的好方法吗
原文由 tyro 发布,翻译遵循 CC BY-SA 4.0 许可协议
@Value
注释 用于将属性值注入变量,通常是字符串或简单的原始值。您可以 在此处 找到更多信息。如果要加载资源文件,请使用
ResourceLoader
像:然后你可以访问资源:
fileResource.getInputStream()
或fileResource.getFile()