Какие веб-фреймворки Java обеспечивают горячую перезагрузку? - PullRequest
11 голосов
/ 16 мая 2010

Хотелось бы знать, какие фреймворки веб-приложений Java предоставляют возможность «горячей перезагрузки», т. Е. Позволяют разрабатывать приложения и размещать их на сервере «почти мгновенно» (т. Е. Менее чем за несколько секунд) .

В мире Java Play! делает это «из коробки», но я ищу более исчерпывающий список.

Другие известные мне примеры: Nuxeo WebEngine, при условии, что вы используете Eclipse и нужный плагин, или, в мире Python, Django и Pylons (при использовании опции --reload).

Ответы [ 8 ]

15 голосов
/ 16 мая 2010

Насколько я знаю, вы можете выполнить горячую перезагрузку практически с любой Java-инфраструктурой, если используете jrebel . В некоторые фреймворки встроено «горячее» развертывание, как отмечено в других ответах.

10 голосов
/ 08 сентября 2010

Если кому-то может быть интересно после этих месяцев:

вы можете настроить jetty , чтобы он мог оперативно развертывать ваши скомпилированные классы (eclipse + netbeans имеет функцию компиляции при сохранении) С помощью maven вы можете набрать mvn jetty:run после этой конфигурации в вашем pom.xml:

        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>${jetty.version}</version>
            <configuration>
                <scanTargets>
                    <scanTarget>target/classes/</scanTarget>
                </scanTargets>
                <scanIntervalSeconds>1</scanIntervalSeconds>
            </configuration>
        </plugin>

Это можно сделать без использования jrebel, и это означает: внесите изменение в IDE + сохраните его + перейдите в браузер + F5 => все готово!

С этой функцией, например калитка или ваадин могут быть развернуты в горячем режиме (но и другие тоже!)

2 голосов
/ 16 мая 2010

Tapestry 5 имеет горячее развертывание отдельных изменений класса / страницы, как и Seam.

1 голос
/ 08 сентября 2010

Я собираюсь предположить, что вы хотите это для целей разработки, а не для производства (так как горячая перезагрузка в производстве для Java == большой сбой). Очень редко я буду использовать коммерческий продукт, но если вы хотите, чтобы горячая перезагрузка в Java ускорила разработку, вам действительно нужен JRebel . Это горячая перезагрузка будет довольно легко с вашей стороны.

ПРИМЕЧАНИЕ : Что бы вы ни делали, не используйте JRebel (или любое другое горячее развертывание) для ваших приложений Java.

0 голосов
/ 02 февраля 2015

В блоке появился новый ребенок, RelProxy, с открытым исходным кодом, не такой продвинутый, как JRebel, но его можно использовать для свободного изменения подмножества вашего кода во время выполнения и его перезагрузки практически без потери производительности и без необходимости. перезагрузки контекста (без потери сеанса) в разработке и производстве, если хотите.

0 голосов
/ 12 декабря 2010

Если вы хотите отредактировать код Java (контроллер, модель) и обновить браузер, чтобы увидеть изменения немедленно и без перезапуска веб-сервера, вы можете использовать scooter . Кстати, его встроенный инструмент File Browser позволяет редактировать (компилировать) ваш код через браузер. Браузер может не поддерживать IDE, но он помогает вам удаленно разрабатывать ваше приложение.

0 голосов
/ 16 мая 2010

Если вы используете POJOs вместо EJBs, Seam framework должно быть в вашем списке.

0 голосов
/ 16 мая 2010

При разработке приложения Struts (2) в Eclipse оно также автоматически перезагружается, как только вы сохраняете файл, который успешно компилируется.

Однако сессии теряются при каждой перезагрузке, что немного раздражает.

...