Spring - способы включить банку, которая сама использует Spring в проекте Spring
-
07-07-2019 - |
Вопрос
Мне нужно использовать банку стороннего производителя в моем проекте. Проект является проектом Spring, и в банке также используется Spring.
Есть ли способ, с помощью которого я могу включить сторонний jar в свой проект? Мне трудно найти каждую и каждую зависимость jar 3-й части и вставить ее.
Решение
Не должно быть проблемой. Как правило, контексты приложения могут загружаться независимо друг от друга в одной и той же JVM. Но если вы загружаете определения своих bean-компонентов из файла ресурсов в classpath (например, используя ClasspathXmlApplicationContext ), убедитесь, что местоположение и имя вашего файла не конфликтуют со сторонним JAR. Например, если они оба расположены по адресу /applicationContext.xml" в разных файлах JAR в classpath у вас будут проблемы. Сделайте свой уникальный.
Другие советы
Мне не совсем понятно, что вы имеете в виду под "включить".
Если сторонний файл jar определен как зависимость в вашем военном проекте, он автоматически будет добавлен в папку войны WEB-INF / lib, когда он упакован военный плагин . В этом случае любой класс в jar будет находиться на пути к классам и, следовательно, будет доступен для ссылки в вашей конфигурации Spring. У вас есть более конкретные требования, чем это?
Также обратите внимание, что если сторонний jar - это правильно определенный проект Maven, его зависимости будут определены в его pom. Эти переходные зависимости также включены в войну (если только вы не определили их с нестандартным scope , в этом случае они могут не быть).
Любой из jar-файлов, которые вы найдете в центральном репозитории Maven , должен быть определен со всеми их переходными зависимостями. Если у вас возникли проблемы с их разрешением, обновите свой ответ, чтобы можно было найти соответствующие учетные данные Maven.
Обновление на основе вашего комментария. Когда jar находится на пути к классам войны, вы можете ссылаться на любые объявленные им конфигурационные файлы Spring, импортируя их в контекст приложения вашей войны. Вы просто указываете импорт в виде: " jar: file: // jarName! /Path/to/config.xml"