Преимущество использования Spring roo over play framework (если мы используем структуру Spring)?

Недавно я наткнулся на платформу Play, оценивая рамки для использования в проекте. Мне нужно использовать язык Java и JVM (поэтому grails не вариант).

Из первоначального впечатления Play Framework выглядит очень похоже на Django (или Rails), но Spring Roo выглядит интересным, потому что я использую фреймворк Spring для основных компонентов.

Есть ли какое-либо преимущество использования Spring Roo, если я уже использую core Spring framework (например, для интеграции)?

Есть ли какие-либо известные проблемы с Spring Roo? (например, потерять контроль над кодом, который он создает для нас)

Ответ 1

Это мое личное впечатление, поэтому он может быть (очень) субъективным. Я также сторонник игры.

Мне приказали дать Spring MVC попытку... Это был какой-то% $% @$% #... неудобный для меня, беспокоясь о файлах XML...

Итак, я нашел Roo, который может принести приложениям довольно неплохо (особенно по сравнению с Spring). Я думал, что разумно использовать его, однако он также требует слишком много усилий, чтобы следить за всеми зависимыми файлами, пока ваш проект (я не знаю, может быть, неправильно IDE, может быть, не слишком много терпения...) Через неделю я был готов вернуться к PHP навсегда;)

Наконец, я нашел Play, и для меня это важно, мне больше не нужно больше обращаться с поддержкой XML, которая сводила меня с ума. Общая структура намного чище, чем в Spring - *. Мне не нужно заботиться о настройке или перераспределить приложение. Все работает только с первого шага. Единственное, что мне нужно сделать, это... разработать!

Итак, заключая, я думаю, что вы должны дать Play шанс, возможно, это будет лучший выбор, чем праздновать неудобные привычки. Может быть. Вы должны сами выбирать.

Кстати: оба действительно разные подходы, вы не будете судить об этом правильно, без твердого сравнения обоих решений с той же темой.

Ответ 2

Все зависит от того, какое приложение вы разрабатываете. Если вы хотите иметь простое приложение с несколькими контроллерами, я уверен, что Play - хороший кандидат. Однако, если вы пишете крупномасштабное корпоративное приложение и хотите воспользоваться всем, что может предложить Spring, Roo - это путь. Spring - фактическая корпоративная инфраструктура Java, каждый поставщик программного обеспечения гарантирует интеграцию Spring, например, для запуска веб-службы SOAP требуется одна строка XML:

<jaxws:endpoint implementor="org.apache.cxf.jaxws.service.Hello" address="http://localhost:8080/test" />

Хотите подключиться к RabbitMQ

<rabbit:connection-factory id="connectionFactory"/>
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"/>

Но это просто ядро ​​ Spring, Roo делает вещи еще проще, хотите добавить базу данных? Введите одну строку в командной строке Roo. Безопасность? Еще одна строка. Запуск в облачный литейный цех? Еще одна строка. Функции автоматического создания подскажут вам всю доступную команду и параметры, необходимые для каждого из них. БОЛЬШОЕ преимущество Roo (для опытного разработчика Spring) не нужно изучать какие-либо новые фреймворки, вы просто вводите команды Roo и получаете стандартный Spring код, после чего вы можете делать все, что хотите. Если вы чувствуете себя более комфортно с обычным Spring, вы можете использовать Roo для запуска вашего проекта, а затем удалить его. Я не из тех, кто прыгает на новейших технологиях, довольно скептически, когда дело доходит до "это улучшит вашу жизнь!" promises, но Roo действительно делает разработку более простой и быстрой.

Ответ 3

Из того, что я видел ранее, большая разница между Roo и Play заключается в том, что Roo создает для вас шаблон шаблонов, который вы затем поддерживаете, тогда как Play просто уменьшает объем кода, который вам нужно разработать, и, следовательно, уменьшает сумму кода, который необходимо сохранить.

Если вы начинаете с нуля, я не вижу преимущества Roo over Play (личное мнение в качестве защитника Play). Однако, поскольку вы уже пришли из фона Spring, тогда Roo может быть лучшим выбором, поскольку для вас нет кривой обучения (и в зависимости от той версии Play, о которой вы думаете, это может быть фактором).

Ответ 4

Я не знаю Spring Play Framework, но я пытался использовать Spring Roo 1.2.3 на после "Начало работы с Roo" pdf, и этот опыт был весьма разочаровывающим. Это не работает, нет обходного пути и нет поддержки известных проблем в Интернете. Загрузите руководство, о котором я упомянул ранее, и попытаемся использовать его шаг за шагом: вы увидите, о чем я говорю. Что касается вашего вопроса: выберите рамки, которые по крайней мере не сломаны или оставлены. Spring Roo делает много promises, но когда вы проводите несколько дней, пытаясь заставить его работать без успеха, вы начинаете спрашивать себя: где преимущество, которое я получаю? Не поймите меня неправильно, я бы хотел использовать Spring Roo, но сделать это было совершенно невозможно.