Веб-структуры: как отличается игра от Spring MVC?
Play Framework предлагает следующий быстрый обзор, но за исключением механизма шаблона Groovy (который вы можете получить в Spring MVC, если вы хотите), Spring, кажется, предлагает все те же функции и многое другое...
-
Исправить ошибку и нажать reload! Отредактируйте свои файлы Java, сохраните, обновите браузер и сразу увидите результаты! Нет необходимости компилировать, развертывать или перезапускать сервер. Spring делает это, что может раздражать.
-
Модель без состояния. Игра - это настоящая система "Ничего общего". Готов к REST, он легко масштабируется путем запуска нескольких экземпляров одного и того же приложения на нескольких серверах. Типичные приложения Spring имеют уровень состояния без состояния; это не чисто RESTful, если вы не хотите быть, но Spring "готов к REST".
-
Эффективная система шаблонов Чистая система шаблонов на основе Groovy в качестве языка выражений. Он обеспечивает наследование шаблонов, включает в себя и теги. Spring использует Java, но Groovy тоже вариант.
-
Устранить ошибки быстро При возникновении ошибки воспроизведение показывает исходный код и точную строку, содержащую проблему. Даже в шаблонах. Spring делает это также.
-
Все, что вам нужно для создания классного веб-приложения. Обеспечивает интеграцию с Hibernate, OpenID, Memcached... и плагиновую систему. Spring интегрируется со всеми и более.
-
Чистая Java Код с Java, используйте любую библиотеку Java и разработайте с вашей предпочтительной IDE. Интегрирует хорошо с eclipse или netbeans. Spring также является чистой Java.
-
Действительно быстро Начинается быстро и быстро работает! Субъективный, но Spring довольно быстрый.
Итак, что делает Play Framework фактически иначе, чем Spring MVC?
Ответы
Ответ 1
Я считаю, что "чистая Java" претензия с обеих сторон очень забавная.
Конечно, нереально для проекта использовать абсолютно ничего, кроме java. Тем не менее, ярлык "чистой Java" должен иметь некоторые стандарты, я не думаю, что любая фреймворк квалифицируется.
Play на самом деле изменяет семантику языка Java. Все в порядке, если это четко указано. Если вы выполняете некоторые манипуляции с байт-кодом, просто будьте честны в этом. Обычно это делается с помощью AOP-ish trick, методы экземпляра украшены дополнительным поведением, их явное поведение - они написаны в коде, как правило, сохраняются. Это не так сложно принять, мы можем притвориться, что наш код подклассифицирован каркасом, а наши методы переопределены дополнительным поведением.
В Play один статический метод, вызывающий другой статический метод в том же классе, может иметь магические эффекты, и поведение не похоже на вызов метода. Это огромная проблема, если программист Java больше не может быть уверен в том, что такое вызов статического метода.
Spring - ну, их часть Java по-прежнему остается чистой Java. Но это так волшебно (из java POV) и так сильно зависит от тяжелой структуры, называя Spring "чистую Java", походит на вызов гамбургера "чистой веге", если мы не увидим мясо. Мясо - лучшая часть!