小编典典

如何在Spring Boot中访问src / main / resources /文件夹中的资源文件

spring-boot

我正在尝试访问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);

并且它正在运行,我想知道为什么其他两条路径会出错,或者为什么它对我不起作用而对其他人也很好。:(

还是还有其他我错过的好方法


阅读 1244

收藏
2020-05-30

共1个答案

小编典典

@Value注释用于注入属性值到变量,通常是字符串或简单的原始值。您可以在此处找到更多信息。

如果要加载资源文件,请使用ResourceLoader如下命令:

@Autowired
private ResourceLoader resourceLoader;

...

final Resource fileResource = resourceLoader.getResource("classpath:XYZ/view/abc.xsd");

然后,您可以通过以下方式访问资源:

fileResource.getInputStream() 要么 fileResource.getFile()

2020-05-30