gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 08:11:45 26 4
gpt4 key购买 nike

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

File file = new File(new ClassPathResource("/src/main/resources/XYZ/view/abc.xsd").getPath());Schema schema = factory.newSchema(file);

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

或者还有其他我想念的好方法

最佳答案

@Value annotation用于将属性值注入(inject)变量,通常是字符串或简单的原始值。您可以找到更多信息 here .

如果要加载资源文件,请使用 ResourceLoader喜欢:

@Autowired
private ResourceLoader resourceLoader;

...

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

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

fileResource.getInputStream()fileResource.getFile()

关于java - 如何在 Spring Boot 中访问 src/main/resources/folder 中的资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43804262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com