我有一些问题来自我已经通过this other question解决的问题。但是,我仍然想知道根本原因。我的问题如下:
据我所知,这是一种告诉Spring Framework在哪里找到xsd以便所有内容都正确连接和加载的方法。但...
我应该在什么情况下将这两个文件放在 META-INF 文件夹下?
在我上面提到的另一个问题中,是否有人知道为什么我必须在META-INF下添加maven-shade-plugin
来创建这两个文件(基于我的所有依赖项)?换句话说,导致我必须使用maven shade插件的根本原因是什么?
答案 0 :(得分:26)
spring.handlers和spring.schemas的目的是什么?
你或多或少地发现了它,让我们添加更多细节:
某些spring库在META-INF目录中包含spring.schemas and a spring.handlers file
<强> META-INF / spring.schemas 强>
<强> META-INF / spring.handlers 强>
(*)在构建spring应用程序上下文期间发生了实际的重新映射
在什么情况下我应该将这两个文件放在 META-INF文件夹?
通常文件在你使用的spring库jar中,但是你可以使用这种机制来实现自己的命名空间bean解析,然后你就拥有自己的文件
在我上面提到的另一个问题中,是否有人知道我必须添加的原因 maven-shade-plugin创建这两个文件(基于我的所有文件) META-INF下的依赖项?换句话说,什么是ROOT原因 这让我不得不使用maven shade插件?
如果在spring配置中使用spring命名空间,则需要相应的文件
当您想要运行java应用程序时出现问题:
我猜你没有用完整的类路径启动主类,我也为你的第一个问题更新了answer
(*)如果将all合并到一个jar中,则必须确保所有spring.schemas / spring.handlers文件的内容合并为一个spring.schemas和一个spring.handlers文件,请参阅此{ {3}}