Какова цель spring.handlers и spring.schemas?
ну, вы более или менее узнали это сами, давайте добавим еще несколько деталей:
некоторые библиотеки Spring содержат spring.schemas и файл spring.handlers внутри каталога META-INF
META-INF / spring.schemas
- повторное сопоставление (*) схемы расположения с xsd внутри библиотеки
- (аннотация) только переотображенные версии поддерживаются этой библиотекой
META-INF / spring.handlers
- предоставляет классы обработчиков пространства имен для определенных пространств имен
- класс обработчика пространства имен обеспечивает логику синтаксического анализатора для анализа bean-компонентов spring-batch, например задание , step и т. д.
(*) фактическое переопределение происходит во время сборки контекста приложения Spring
При каких обстоятельствах я должен иметь эти два файла в папке META-INF?
илиВ большинстве случаев файлы находятся внутри используемых вами библиотек Jar библиотеки Spring, но вы можете использовать механизм для реализации собственного анализа бина пространства имен, тогда у вас будут собственные файлы
В моем другом вопросе, связанном выше,кто-нибудь знает, почему мне пришлось добавить плагин maven-shade-plugin для создания этих двух файлов (на основе всех моих зависимостей) в META-INF?Другими словами, что за коренная причина заставила меня использовать плагин maven shade?
если вы используете пространство имен пружины в конфигурации пружины, вам нужны соответствующие файлы
проблема возникает, когда вы хотите запустить Java-приложение:
- с основным классом либо
- библиотеки пружин должны быть в classpath
- или всеобъединяется в один jar-файл, который должен находиться в classpath (*)
- как серверное приложение war / ear, весенние библиотеки должны находиться в classpath, обычно внутри войны
Я полагаю, вы не запустили основной класс с полным путем к классам, и я обновил свой ответ и для вашего первого вопроса тоже
(*), если вы объедините все водин jar, вы должны убедиться, что содержимое всех файлов spring.schemas / spring.handlers объединено в один файл spring.schemas и один файл spring.handlers, см. этот ответ для конфигурации с maven для созданиявсе-в-one.jar