2013-09-07 3 views
1

Мое приложение является автономным Java-приложением, которое использует Spring IoC. Загрузка загрузочного приложения с загрузкой ApplicationContext позволяет сказать 35 служб в памяти, которые затем используются через экземпляр жизненного цикла JVM моего приложения. Для этого бутстрапинга требуется около 6-7 минут, что затрудняет тестирование модулей.Spring IOC Bootstraping возможно

Это последовательность шагов, которые я должен делать, что я пытаюсь избежать и по-прежнему использовать Spring:

  1. Bootstrap (весна), а затем фактический код бизнес-логики.
  2. Тестовый код.
  3. После тестирования я нахожу что-то, что хочу изменить, что означает, что я должен остановить JVM, изменить свой код, запустить его снова, в этот момент Spring снова занимает около 6-7 минут, загружая приложение.

Как проверить мой модифицированный код в одном экземпляре JVM без принудительной перезагрузки JVM?

ответ

4

Там нет простого решения этой

Я знаю три возможных пути, чтобы избежать вашей проблемы:

  1. Try насмешливых части своих услуг. Особенно в тестах на юнитах это рекомендуется практика. В архитектуре готовности IOC это должно быть легко. При ручном тестировании вы можете использовать поддельные услуги.

  2. Перейти к OSgI-архитектуре. Это позволит вам запускать, останавливать и передислоцировать отдельные службы. Но вам придется использовать контейнер OSgI, и для переключения потребуется несколько секунд.

  3. Попробуйте что-то вроде JRebel, который обещает устранить проблемы с горячим развертыванием (после 14-дневной оценки вам придется его купить). Но много раз расширенный горячий разврат не поможет, потому что вам придется очистить свой контекст приложения.

+0

Я думаю, что это не совсем возможно, но предложенные вами варианты имеют смысл и полезны. –

Смежные вопросы