MVC в мире Google App Engine Java - PullRequest
25 голосов
/ 14 мая 2009

Я прихожу на Java из C # & ASP.NET MVC, я бы хотел найти в мире Java эквивалент, который я мог бы использовать в Google App Engine. Я уже начал играть с FreeMarker и даже сделал первые шаги к написанию очень простого фреймворка. В идеале мне не пришлось бы выполнять всю тяжелую работу, хотя, должно быть, кто-то уже сделал это! Поэтому мой вопрос - какие фреймворки существуют для меня, которые были бы знакомы для ASP.NET MVC, и я мог бы использовать их в Google App Engine для Java.

Ключевые вещи, которые я хотел бы получить:

  • Простая маршрутизация - /products/view/1 сопоставляется с действием просмотра контроллера продуктов с производительностью 1
  • Template Engine - какой-то способ простой передачи 'ViewData' в представление и из представления, легко получающего доступ к нему, в идеале я бы хотел избежать всего, что является слишком XMLy (поэтому мне и нравится 1015 * FreeMarker ).

Ответы [ 5 ]

12 голосов
/ 16 мая 2009

В настоящее время я работаю над приложением Google App Engine, используя Spring MVC. Он намного более зрелый, чем ASP.NET MVC, поэтому не стоит разочаровываться. В качестве дополнительного бонуса вы получаете всю силу IoC в Spring.

Для слоя просмотра я пробую скорость. Это довольно просто, но мне еще предстоит решить, предпочитаю ли я это JSP. Я кратко посмотрел на FreeMaker, но мне не понравилось то, что я увидел. Если вы хотите держаться подальше от шаблонов XML'ы JSP, то я рекомендую вам попробовать Velocity.

Единственная проблема, с которой я столкнулся в Spring на GAE - это загрузка файлов. В обеих реализациях MultipartResolver используется временный каталог файлов. После написания собственной реализации я вернулся к плавной загрузке файлов в моих моделях.

8 голосов
/ 13 октября 2010

Есть пара инфраструктур MVC, которые вы должны рассмотреть (это то, что я делаю сейчас). Первоначально я пошел с Spring MVC (3.0), и холодный старт на GAE ужасен! Запуск занимает около 10 секунд (и я даже не использую ничего сложного, например, Spring Security и т. Д.), Поэтому мне нужно использовать задание cron, чтобы сохранить его. Поэтому я не рекомендую использовать Spring вообще в GAE.

Взгляните на следующие рамки:

VRaptor

Slim3

Google Sitebricks

Что касается шаблонов, я использую Sitemesh - использовал его довольно давно, поэтому не вижу необходимости переключаться.

Надеюсь, это поможет!

3 голосов
/ 25 апреля 2011

Play Framework будет соответствовать всем требованиям. Это современная инфраструктура MVC для Java и имеет модуль Google App Engine для обеспечения совместимости. Смотри http://www.playframework.org/modules/gae.

Еще одним преимуществом использования Play будет мобильность. Вы можете развернуть Play, используя его встроенный веб-сервер (опционально за apache для кэширования, балансировки нагрузки и т. Д.), Или вы можете связать в виде файла .war для развертывания на многих серверах приложений Java (Glassfish, Tomcat, ...).

2 голосов
/ 04 августа 2009

У меня также есть сильное предпочтение Freemarker. Я предлагаю вам взглянуть на платформу Induction, ее механизм шаблонов подключаем, но по умолчанию поддерживается Freemarker. Индукция - это легкий и быстрый фреймворк MVC (7,7 тыс. Строк), но он имеет много функций, отсутствующих в основных фреймворках MVC, таких как:

  • динамическая перезагрузка во время разработки при смене контроллеров, представлений или моделей
  • загрузка файла настолько проста (мало чем отличается от ввода строки)
  • для контроллеров конфигурация не требуется
  • возможность анализировать зависимости между вашими моделями, представлениями и контроллерами с помощью вашей IDE
  • сопоставления URL на основе регулярных выражений
  • лучшая поддержка для управления перенаправлениями любой инфраструктуры MVC

Что касается проблемы с загрузкой файлов, поднятой @pjesi, Induction позволяет вам установить порог размера, при котором файлы будут записываться на диск. Если он установлен достаточно большим, он не должен пытаться записывать какие-либо файлы на диск.

Ознакомьтесь с руководством по началу работы здесь: http://www.inductionframework.org/getting-started-tutorial.html

1 голос
/ 14 мая 2009

JavaServer Faces (JSF), который я слышал, похож на Microsoft MVC Framework. (Я использую JSF, но никогда не использовал .NET MVC). И я считаю, что JSF 1.1 отлично работает на Google App Engine, и я подозреваю, что более новые версии JSF будут работать, если вы будете использовать XHTML вместо JSP в качестве шаблонов. Есть также несколько хороших библиотек, которые позволяют использовать интерфейс AJAX в JSF-фреймворке, RichFaces - популярная. Проверять, выписываться JavaServer Faces на sun.com а также JBoss RichFaces

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