【问题标题】:Need understanding of spring.handlers and spring.schemas需要了解 spring.handlers 和 spring.schemas
【发布时间】:2012-01-26 09:59:10
【问题描述】:

我有一些问题源于我已经通过this other question 解决的问题。但是,我仍然想知道根本原因。我的问题如下:

  1. spring.handlersspring.schemas 的用途是什么?

据我了解,这是一种告诉 Spring 框架在哪里定位 xsd 的方法,以便正确连接和加载所有内容。但是……

  1. META-INF文件夹下什么情况下应该有这两个文件?

  2. 在我上面链接的另一个问题中,有人知道为什么我必须添加 maven-shade-plugin 在 META-INF 下创建这两个文件(基于我的所有依赖项)吗?换句话说,让我不得不使用 maven shade 插件的根本原因是什么?

【问题讨论】:

    标签: spring xsd uri spring-batch spring-3


    【解决方案1】:

    spring.handlers 和 spring.schemas 的作用是什么?

    好吧,您或多或少是您自己发现的,让我们添加更多细节:

    一些 spring 库在 META-INF 目录中包含 spring.schemas and a spring.handlers file

    META-INF/spring.schemas

    • 将架构位置重新映射 (*) 到库中的 xsd
    • (摘要)此库仅支持重新映射的版本

    META-INF/spring.handlers

    • 为特定命名空间提供命名空间处理程序类
    • 命名空间处理程序类提供解析器逻辑来解析 spring-batch bean,如 job步骤

    (*) 实际的重新映射发生在 Spring 应用程序上下文的构建过程中


    什么情况下我应该把这两个文件放在 META-INF 文件夹?

    通常文件在你使用的spring库jar中,但你可以使用该机制来实现自己的命名空间bean解析,那么你就会有自己的文件


    在我上面链接的另一个问题中,有人知道我为什么必须添加 maven-shade-plugin 来创建这两个文件(基于我所有的 依赖项)在 META-INF 下?换句话说,根本原因是什么 这让我不得不使用 maven shade 插件?

    如果您在 spring 配置中使用 spring 命名空间,则需要相应的文件

    当你想运行一个java应用程序时,问题就出现了:

    • 有一个主类
      • spring 库需要在类路径中
      • 或全部合并到一个 jar 中,该 jar 必须在类路径中 (*)
    • 作为 war/ear 服务器应用程序,spring 库需要在类路径中,通常在 war 中

    我猜你没有用完整的类路径启动主类,我也为你的第一个问题更新了我的answer

    (*) 如果将所有内容合并到一个 jar 中,则必须确保所有 spring.schemas/spring.handlers 文件的内容都合并到一个 spring.schemas 和一个 spring.handlers 文件中,请参阅@ 987654323@

    【讨论】:

    • 非常感谢,这正是我要找的。​​span>
    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 2013-10-27
    • 1970-01-01
    • 2019-01-23
    • 2012-10-09
    • 2012-01-05
    • 1970-01-01
    相关资源
    最近更新 更多