Какую структуру java-сети нужно изучать?
Я заинтересован в изучении структуры веб-разработки java, и я ищу некоторые рекомендации/предложения, по которым я должен учиться (и почему).
В идеале я хотел бы, чтобы фреймворк:
- На основе MVC.
- Минимальная конфигурация
- Простой в использовании ORM
- Уметь достойное управление сеансом.
- Будь легко подбирать
Я знаком с пилонами и django, поэтому, если есть java-структура, похожая на одну из них, тогда мне было бы особенно интересно.
Спасибо.
Вывод:
Прежде всего, я хотел бы поблагодарить тех, кто нашел время, чтобы поделиться своими соображениями. За последние несколько недель я опробовал Spring MVC, Wicket и Stripes. В конечном счете, я выбрал Stripes по всем причинам, описанным в "Civil Disobedient"; удивительно, что ни одно из его высказываний оказалось гиперболическим. В сочетании с Stripes я использую JPA/Hibernate. Одна из проблем, которые я испытывал, - это сообщество Stripes, похоже, относительно "маленькое" по сравнению с Struts2, JSF и т.д. Хотя это, возможно, сравнительно мало, сообщество очень доступно, дружелюбное и полезное.
Наконец, пока я не пробовал Grails, я изучал его, и он выглядит очень интересным/перспективным. Из того, что я видел, синтаксис Groovy выглядит очень похоже на python (поскольку я знаком с w/python, это облегчит мне изучение), а сама структура Grails, похоже, является структурой RAD, сравнимой с Rails, Django/Pylons. Я, конечно, планирую посмотреть дальше и (в ближайшем будущем) в конечном итоге узнать groovy/grails.
Ответы
Ответ 1
Stripes - это, без сомнения, лучшая и простая в использовании инфраструктура java, которую я когда-либо имел удовольствие использовать. Чтобы ответить на каждый из ваших вопросов:
На основе MVC.
MVC - это в глазах смотрящего - по крайней мере, это сильно зависит от того, как вы создаете свою структуру кода. Но да, довольно просто использовать структуру проекта MVC с помощью Stripes.
Минимальная конфигурация
Здесь сияет Стрип. Чтобы встать и работать, вам нужно только поместить несколько строк в ваш web.xml. Все остальное автоматически подключено. Красота Stripes заключается в том, что все можно легко переопределить, если вы этого хотите.
Простой в использовании ORM
Stripernate является популярным расширением рамки, которая, опять же, работает автоматически.
Уметь достойное управление сеансом
Так же просто, как аннотация @Session в поле. Или вы можете сохранить весь ActionBean в сеансе, если хотите. Stripes имеет встроенную поддержку Wizards, поэтому вам не нужно беспокоиться о сохранении состояния через запросы.
Будь легко подбирать
Это самый сильный костюм Stripes. Не говоря уже о том, что Wiki невероятно хорошо документирован.
Кроме того, у Stripes есть встроенная поддержка шаблонов макета, localization, AJAX и множество других вещей. И в отличие от некоторых фреймворков, которым требуются десятки гигантских JAR (каш... Tapestry), вся инфраструктура представляет собой единый JAR, который весит менее 500 КБ.
Ответ 2
Grails вполне может быть тем, что вы ищете. Он работает на Groovy (один из наиболее популярных JVM-языков).
Он использует методологию кодирования по соглашению, поэтому там небольшая конфигурация.
MVC и имеет свой собственный ORM (называемый GORM), но вы можете подключить Hibernate (возможно, самый популярный Java ORM).
Ответ 3
Удачи. Вопрос, который вы задали, примерно похож на "Я хочу жареный бутерброд с жареной говядиной, сделанный из курицы". Рамки, доступные на Java, как правило, тяжелы в конфигурации и немного сложно изучить.
Вот, вот мои предложения:
- MVC на основе - Spring MVC или JSF, ни одна из которых особенно проста в изучении. Я не использовал никаких других веб-фреймворков MVC (Wicket, Tapestry и т.д.), Поэтому кому-то может понадобиться весить здесь.
- Минимальная конфигурация. Лучше всего сделать Spring MVC с аннотациями. Но это Java - конфигурация ад - это название игры.
- Простая в использовании ORM. Я не уверен, к чему вы привыкли на других языках, но в Java ORM не приходят в структуру MVC. Лучшим выбором для простой в использовании ORM является JPA поверх Hibernate, особенно если вы выложите $60 US для MyEclipse. Внедрение JPA в MyEclipse само по себе более чем стоит инвестиций. Это не идеально, просто лучше, чем что-либо еще, что я видел.
- Уметь достойное управление сеансами. Сделайте свой выбор. С конца 90-х годов контейнеры J2EE управляли большим количеством сеансов, чем вам может понадобиться.
- Легко пикап - ничего, что приходит на ум. Так же просто, как Java, как язык, связанные с ним веб-инструменты, как правило, являются тем, что грубовато. Изучите JSP и избегайте JSF, так как у него есть эксцентричный жизненный цикл, который, как правило, скрывает ошибки, о которых вы действительно хотите узнать.
Удачи!
Изменить: Я никогда не использовал Grails, но я должен согласиться с Брайаном и Нафаном, сказав, что это похоже на то, что вы ищете.
Ответ 4
Взгляните на http://www.playframework.org/.
Ответ 5
Я считаю, что Spring Web MVC удовлетворит ваши требования.
Spring О странице
Ответ 6
Моя любимая рамка. www.stripesframework.org. Очень простая и гибкая. Извините, не заметил компонент orm. Вам понадобится отдельный ORM, например, спящий режим.
Однако, grails охватывает весь ваш список.
Ответ 7
Вы можете попробовать Wicket и гобелены. Это более эффективные рамки. Оба они построены на разных наборах идей.
Ответ 8
Поскольку вы сказали, что хотите создать веб-среду Java, я рекомендую использовать Wicket, GWT или RAP.
Wicket - очень простая, "голая металлическая" структура, где вся логика находится на Java (а не разделяется между Java и JSP, как в Struts, JSF или других подобных средах). Он также ориентирован на компоненты, что означает, что вы можете повторно использовать один и тот же компонент графического интерфейса (будь то простой или составной) на разных страницах. Наконец, Wicket позволяет использовать AJAX, не требуя, чтобы вся ваша страница была записана в Javascript (например, как требуется extjs)
GWT и RAP являются "компиляторами java для javascript". Вы пишете свой код на обычной Java, включая логику взаимодействия на стороне клиента (реагируя на клики, перетаскивания и т.д.), А среда компилирует код в javascript, который выполняется на клиенте и взаимодействует с сервером, когда это необходимо. GWT (из google) основан на модели swing, в то время как RAP (от затмения) основан на Eclipse RCP-модели (которая намного богаче, чем качание).
Основное различие между Wicket и GWT/RAP заключается в том, что калитка более ориентирована на создание сайтов "старой школы" (например, stackoverflow - это старая школа - страницы, формы с небольшим количеством ajax), тогда как GWT/RAP для написания приложений RIA (там, где много виджетов со сложным взаимодействием).
Наконец, для альтернатив "из коробки", проверьте extjs, cappucino и, возможно, веб-запуск java
Ответ 9
Вы можете попробовать Tapestry 5. Это веб-инфраструктура на основе MVC, с почти нулевой конфигурацией (условная конфигурация, Ruby on Rails-like). Легче учиться, чем JSF, например (JSF - это еще одна основанная на компонентах инфраструктура).
В Tapestry 5 есть много готовых компонентов и простая и чистая интеграция с Hibernate (ORM) и Struts (промежуточное ПО). О, и функция живой перезагрузки впечатляет.
Ответ 10
Я очень рекомендую использовать ZK. Я использовал его для многочисленных проектов и считал его чрезвычайно продуктивным и надежным. Он постоянно обновляется, и новая версия (5.0, я думаю) включает в себя как серверную архитектуру, так и возможность настройки клиента.
ZK 5 имеет интеграцию jQuery, которую вы можете использовать, если хотите, чтобы ваши руки были грязными с помощью Javascript, хотя это полностью необязательно. Я также прочитал, что GWT будет реализован, чтобы полная клиентская настройка была доступна с использованием Java.
Он удовлетворяет вашим 5 критериям и может также использоваться в сочетании с Grails (см. здесь). Вот несколько ссылок, чтобы начать работу:
Я надеюсь, что это поможет вам!
Ответ 11
Как насчет Гамлета?
Гамлеты (ранее известные как платформа создания контента на основе сервлетов IBM) - это система с открытым исходным кодом для создания динамических веб-страниц, разработанных Рене Павлицем в IBM. Гамлет - это расширение сервлета, которое считывает файлы шаблонов XHTML, содержащие презентацию с использованием SAX (Simple API для XML), и динамически добавляет контент "на лету" в те места в шаблоне, которые отмечены специальными тегами и идентификаторами, используя небольшой набор функций обратного вызова, Компилятор шаблонов может использоваться для ускорения работы Hamlets.
Гамлеты обеспечивают простую в использовании, легко понятную, легкую, небольшую, основанную на сервлете структуру создания контента, которая облегчает разработку веб-приложений. Рамка Hamlets не только поддерживает, но и обеспечивает полное разделение контента и презентации. Это результат радикальных усилий по упрощению программного обеспечения.
Ответ 12
Если JSF + Hibernate + AJAX (необязательно + EJB) звучит ваша вещь, посмотрите на Seam.
Также проверьте здесь:
http://gokhan.ozar.net/best-java-web-frameworks/