我正在尝试访问src / main / resources / XYZ / view文件夹中的xsd,其中XYZ / view文件夹是由我创建的,并且文件夹具有abc.xsd,我需要进行XML验证。
当我每次尝试获取xsd的结果为null时,
我尝试过
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,
文件文件=新文件(新ClassPathResource(“ / src / main / resources / XYZ / view / abc.xsd”)。getPath());模式架构= factory.newSchema(file);
并且它正在运行,我想知道为什么其他两条路径会出错,或者为什么它对我不起作用而对其他人也很好。:(
还是还有其他我错过的好方法
的@Value注释用于注入属性值到变量,通常是字符串或简单的原始值。您可以在此处找到更多信息。
@Value
如果要加载资源文件,请使用ResourceLoader如下命令:
ResourceLoader
@Autowired private ResourceLoader resourceLoader; ... final Resource fileResource = resourceLoader.getResource("classpath:XYZ/view/abc.xsd");
然后,您可以通过以下方式访问资源:
fileResource.getInputStream() 要么 fileResource.getFile()
fileResource.getInputStream()
fileResource.getFile()