Класс перезагрузки, когда весной изменяется зависимый ресурс - PullRequest
2 голосов
/ 08 ноября 2010

Вы знаете, как Eclipse перезагружает классы, автоматически запускающиеся в Tomcat, когда обновляются файлы ресурсов, от которых они зависят, например контекстные файлы Spring, чтобы вам не приходилось перезапускать Tomcat? Как сделать класс зависимым от файла ресурсов, чтобы Eclipse повторно опубликовал его при изменении файла ресурсов? Eclipse будет повторно публиковать классы Spring при обновлении их зависимых файлов ресурсов, но не будет публиковать мои заново.

Ответы [ 3 ]

4 голосов
/ 09 ноября 2010

Я не уверен, что весна делает это для вас.Вы разрабатываете в IDE, как Eclipse или Netbeans?Когда вы вносите изменения в код, ваша IDE «публикует» (т. Е. Повторно развертывает) код вашего приложения, поэтому приложение переинициализируется каждый раз, когда IDE публикует его, создавая иллюзию, что Spring перезагружает контекстные файлы по мере ихменять.

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

Если вы ищете такое поведение для разработки, взгляните на JRebel: http://www.zeroturnaround.com/jrebel/

2 голосов
/ 15 ноября 2010

Вы говорите, что хотите, чтобы класс был переиздан? Вы хотите сказать, что вы хотите обновить содержимое компонента в контексте приложения? Если это так, то вы можете сделать следующее:

1) Напишите монитор файловой системы для отслеживания изменений в ресурсах. Вот пример по гугл-коду

2) Пусть монитор файловой системы запускает настраиваемое Spring ApplicationEvent при каждом изменении файла / ресурса, предоставляя этому событию информацию для ресурса, если необходимо. т.е. имя файла, время предыдущего изменения, время последнего изменения и т. д.

3) Установите компонент, который вы хотите обновить, реализуйте ApplicationEventListener и перезагрузите ресурс, когда он перехватит событие монитора вашей файловой системы.

1 голос
/ 16 ноября 2010

Простой, но работающий обходной путь может заключаться в том, чтобы добавить сборщик муравьев в ваш проект.Шаги, которые необходимо предпринять:

  1. прочитайте статью здесь http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.platform.doc.user/gettingStarted/qs-93_project_builder.htm
  2. создайте простой файл муравья, содержащий цель, которая касается (просто меняет датумодификации) зависимые классы, но больше ничего (если вам нужна помощь в этом, дайте мне знать).Eclipse предоставит вам переменные внутри скрипта.Вы можете распечатать их легко с задачей.Вы увидите список в консоли.
  3. щелкните правой кнопкой мыши по проекту и нажмите свойства
  4. откройте вкладку "строители" в свойствах
  5. добавьте свой скрипт Ant в качестве сборщика впроект
  6. ограничивает набор ресурсов, для которых требуется этот сборщик муравьев.Это можно сделать на вкладке «Параметры сборки» в настройках Ant Builder.Таким образом, ваш проект будет быстрым, и сценарий ant будет запускаться только для изменений файла свойств
  7. установить набор ресурсов (классов в зависимости от свойств) для обновления после запуска сценария ant в «Обновить»tab
  8. Установите вашу цель для ant-скрипта, которая будет вызываться для "Auto build" на вкладке "target".Другие, такие как после и до чистой и ручной сборки, должны быть пустыми
  9. Вы можете перенаправить журнал сценария ant в файл, если хотите.В противном случае он откроет консольное представление.
  10. переместит ваш сборщик на первое место в списке сборщиков, поскольку он должен запускаться перед сборщиком java

Это обходной путь, и он должен работать,У него не будет плохого побочного эффекта, поскольку содержимое файла java не изменится и не повлияет на систему управления версиями, а также не зависит от рабочей области, если в вашем проекте есть скрипт ant.

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