当前位置: 首页 > 面试题库 >

如何在Spring 3.1中使用通配符加载xml资源文件

窦华晖
2023-03-14
问题内容

我想加载xml文件,其中包含Spring Maven项目中几个模块的一些错误定义。我想加载文件,然后将其传递给JAXB解混器。

这是我到目前为止所做的

String path = "classpath*:/**/definitions/error-definition.xml";
ClassPathResource resource = new ClassPathResource(path);
unmarshaller.unmarshall(resource);

我的资源文件位于以下位置

src/main/resource/module1/definitions/error-definition.xml

src/main/resource/module2/definitions/error-definition.xml

这给我以下错误

java.io.FileNotFoundException: class path resource [classpath*:/**/definitions/error-definition.xml] cannot be resolved to URL because it does not exist

但是当我如下更改路径时

 String path = "/module1/definitions/error-definition.xml";

有用

以下是我没有运气尝试过的其他通配符

String paths = "classpath:/**/definitions/error-definition.xml";
String paths = "classpath*:error-definition.xml";
String paths = "classpath*:*.xml";

我想做的是使用通配符从下面的任何文件夹中获取xml文件。 src/main/resource

我之前提到过几个SO答案,但仍然无法弄清楚我在做什么错。


问题答案:

要加载资源,请将ResourceLoader注入您的类中。您可以通过实施做到这一点ResourceLoaderAware或干脆标注类型的字段ResourceLoader@Autowired

public class YourClass {

    @Autowired
    private ResourceLoader rl;

}

现在,您已经ResourceLoader可以使用ResourcePatternUtils来实际加载资源。

public Resource[] loadResources() {
    return ResourcePatternUtils.getResourcePatternResolver(rl).getResources("classpath:/directory/**/*-context.xml);

}


 类似资料:
  • 传统方式的导入外部JS和CSS文件的方法是直接在模板文件使用: <script type='text/javascript' src='/static/js/common.js'> <link rel="stylesheet" type="text/css" href="/static/css/style.css" /> 系统提供了专门的标签来简化上面的导入: {load href="/stati

  • 问题内容: 如何在Clojure程序中加载程序资源,例如图标,字符串,图形元素,脚本等?我使用的项目布局类似于许多Java项目中的布局,在Java项目中,“资源”目录挂在“源”目录上。一个jar文件是从源代码创建的,包括资源,但是我似乎无法像在Java中那样加载资源。 我尝试的第一件事是 但是永远找不到资源。 您可以使用类似的方法 其中name是要加载的资源的名称,而流是。 您可以尝试将上下文类加

  • 问题内容: 我的项目具有以下结构: 我有一个文件,我想从单元测试中加载文件 我有此代码不起作用。它抱怨“没有这样的文件或目录”。 我也试过了 这也不起作用。它返回。我正在使用Maven构建我的项目。 问题答案: 尝试下一个: 如果上述方法不起作用,则已在以下类中添加了各种项目:1(代码在此处)。 以下是有关如何使用该类的一些示例:

  • 问题内容: 在JavaFX程序中添加切片图的最有效方法是什么? 我用于创建切片地图的程序称为“ Tiled”,保存的文件为.tmx格式。 现在,问题是,如何将其准确导入我的2d游戏中?我一直无法在网上找到有用的信息。 代码示例非常感谢。 谢谢 问题答案: 使用Eppleton JavaFX TileEngine (不幸的是,此链接现在已失效:类似的内容仍托管在javageeks上: 当心链接带有令

  • 当我在spack-2.2.0中加载xml文件时,如下所示: 它向我展示了一个错误: JAVAlang.ClassNotFoundException:未能找到数据源:xml。请在http://spark.apache.org/third-party-projects.html在org。阿帕奇。火花sql。处决数据源。数据源$。org上的lookUpdateSource(DataSource.scal