Какую структуру 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, но я должен согласиться с Брайаном и Нафаном, сказав, что это похоже на то, что вы ищете.

Ответ 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 не только поддерживает, но и обеспечивает полное разделение контента и презентации. Это результат радикальных усилий по упрощению программного обеспечения.