Можно ли использовать Spring в плагинах Eclipse? - PullRequest
1 голос
/ 05 февраля 2009

Можно ли использовать Spring-контейнер для DI из плагинов Eclipse?

Мне интересно, потому что я знаю, что Eclipse вызывает много проблем с загрузкой классов, поиском вещей в плагине и т. Д.

Плагин предназначен для распространения в виде JAR.

Ответы [ 3 ]

1 голос
/ 05 февраля 2009

Ответ - да. Вы можете использовать Spring DM, но вам не нужно. Наверное, лучше с этим.

Я сделал это без Spring DM, и основная проблема - проблемы с загрузкой классов (не уверен, что Spring DM решит их, но, думаю, так и должно быть). Предполагая, что вы связываете Spring JAR в отдельный плагин с зависимостями, вам нужно будет загрузить контекст с загрузчиком классов вызывающего плагина.

Пример:

  • Плагин А - ваш функциональный плагин
  • Плагин B - Плагин Spring lib, экспортирующий весенние пакеты

Плагин A зависит от B. Когда плагин A запускается, он загружает контекст приложения, при вызове этой загрузки вам нужно будет сделать что-то вроде:

Thread.currentThread().setContextClassLoader(PluginAActivator.class.getClassLoader())

Так что загрузка классов будет происходить под вашим собственным загрузчиком классов. Теперь вы можете использовать ClassPathXmlApplicationContext для загрузки конфигурационных XML-файлов из вашего пути к классам.

Одна небольшая заметка: по умолчанию ClassPathXmlApplicationContext проверяет ваши XML при загрузке. Вы можете отключить его или указать свои XML-файлы на локальной схеме (а не на стандартной схеме Spring на springframework.org), в противном случае вы подключитесь к Интернету, чтобы загрузить файлы схемы после загрузки, и работа в автономном режиме не удастся выполнить. *

1 голос
/ 05 февраля 2009

Да, но вам понадобится Spring DM http://www.springsource.org/osgi

0 голосов
/ 30 сентября 2009

у вас есть пример кода для вашего сообщения? Это было бы здорово, так как я некоторое время слоняюсь с этим.

Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...