如何在Spring Boot中访问src / main / resources /文件夹中的资源文件
我正在尝试访问src / main / resources / XYZ / view文件夹中的xsd,其中我创建了XYZ / view文件夹,文件夹中有我需要的abc.xsd进行xml验证。
I'm trying to access xsd in src/main/resources/XYZ/view folder where XYZ/view folder are created by me and folder has abc.xsd which I need for xml validation.
当我每次将结果视为空时尝试访问xsd时,
When I try to access the xsd every time I get the result as 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();
以及我为获取资源或类加载器等而创建的更多路径。
and many more trails I made to get the resource or classloader etc.
最后我得到了xsd,
文件文件=新文件(新的ClassPathResource(/ src / main / resources / XYZ / view) /abc.xsd)的getPath())。
Schema schema = factory.newSchema(file);
File file = new File(new ClassPathResource("/src/main/resources/XYZ/view/abc.xsd").getPath()); Schema schema = factory.newSchema(file);
它正在工作,我想知道为什么其他两条路径会出错或为什么呢不适合我,也不适合别人。 :(
and it is working, I want to know why the other two trails would have gone wrong or why it didn't work for me and fine for others. :(
还是有其他好方法可以做到这一点我缺少
Or is there other good way of doing it which I'm missing
@Value
注释用于将属性值注入变量,通常是字符串或简单的原始值。您可以找到更多信息这里。
如果要加载资源文件,请使用 ResourceLoader
喜欢:
If you want to load a resource file, use a ResourceLoader
like:
@Autowired
private ResourceLoader resourceLoader;
...
final Resource fileResource = resourceLoader.getResource("classpath:XYZ/view/abc.xsd");
然后您可以访问资源:
fileResource.getInputStream()
或 fileResource.getFile()