Подтвердить что ты не робот

MVC в мире приложений Google App Engine

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

Ключевыми вещами, которые я хочу, являются:

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

Ответ 1

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

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

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

Ответ 2

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

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

VRaptor

Slim3

Google Sitebricks

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

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

Ответ 3

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

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

Ответ 4

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

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

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

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

Ответ 5

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