2009-12-26 3 views
6

Я ищу отзывы от опытных пользователей по весеннему роу и appfuse. Как вы думаете, лучше ли работать с таблицами базы данных обратного проектирования и генерировать уровень сервиса, уровень dao и объекты jpa?spring roo vs appfuse generate service/dao layer

Если я не ошибаюсь, Spring roo в настоящее время не может переделать базу данных.

ответ

1

Вы правы, что вы не можете перестроить базу данных в Roo. Есть an open JIRA item for this, которые вы можете проголосовать.

Однако вы можете попробовать использовать Eclipse Hibernate tools для обратной инженерии вашей базы данных, а затем изменить эти объекты, чтобы сделать их объектами Roo. Тем не менее, это, вероятно, потребует много ручной работы.

Для AppFuse существует AppFuse Maven plugin, который может создать для вас весь проект AppFuse из существующей базы данных. Я не уверен, работает ли он сейчас, потому что последний человек, о котором я говорил, сказал, что не может заставить его работать.

В зависимости от ваших требований вы также можете попробовать попробовать Grails framework. Есть инструмент под названием GRAG, который может перепроектировать приложение Grails из базы данных.

1

Вопрос ROO-435 на самом деле является нашей наиболее востребованной функцией, поэтому я буду реализовывать это в Spring Roo в течение следующих нескольких недель. Тем временем, предложение Джейсона использовать инструменты Hibernate Eclipse для создания аннотированных объектов JPA - это немедленное решение, полностью совместимое с Roo.

2

Роо хорош, чтобы быстро поднять вещи (круговое отключение поражает) .. но отсутствие готового пакета обеспечивает слой услуг, который связывает мои потребности. Я знаю, что я могу сделать аннотацию @Services и код места, как указано в документации (слишком много работы при запуске). Я хотел, чтобы Roo дал мне выбор, чтобы иметь сервисы + dao layer ... из коробки. Это было бы (сделало)/сделать Roo a killer app, imho

3

Просто быстрое обновление, чтобы сообщить всем пользователям, которые наткнулись на эту нить сейчас (или по крайней мере после сегодняшнего дня :)); С новой версией 1.1.0 Spring Roo теперь поддерживает инкрементную обратную разработку базы данных из коробки. См. Этот выпуск annoucement.

В качестве комментария к актуальному вопросу: я не думаю, что любой из этих двух способов лучше, чем другой в генерации реальных сущностей, но между AppFuse и Spring Roo существует большая разница в стороне от объекта поколение. Если вам действительно нужны DAO, это то, что выходит из коробки в AppFuse и частично отложено в Spring Roo, но есть и отличный аддон для Spring Roo (аддон аддона), который отлично справляется с этим, может быть, даже лучше, чем AppFuse. Основная причина для AppFuse, по моему скромному мнению, заключается в том, что вам нужна еще одна веб-платформа (т. Е. Wicket. Tapestry или JSF), а затем Spring MVC или GWT, поскольку в настоящее время это единственные хорошо поддерживаемые веб-структуры в Spring Roo (более подходящее, например, Flex и т. д.). Другая причина, по которой вы можете пойти на AppFuse, - это если вы хотите использовать IDE с полной поддержкой intellisense и завершения кода, но не хотите использовать Eclipse (вы можете использовать другие IDE, а сборка отлично работает с Spring Roo, но должна к файлам AspectJ, которые не распознаются Netbeans, в противном случае Eclipse другого IDE в настоящее время не выполняет корректного завершения кода для генерируемых/управляемых файлов Spring Roo).

Но если вы не возражаете против Eclipse (или лучше даже Spring Tools Suite) и хотите использовать GWT и/или Spring MVC, я бы рекомендовал Spring Roo.Основными причинами для Spring Roo являются, по моему скромному мнению, более высокая производительность, гораздо лучшая поддержка, гораздо более высокий импульс и активность, более низкая кривая обучения (для быстрого создания приложений CRUD) и, конечно же, Rails, как командная оболочка, из которой вы можете быстро настроить и настроить ваше приложение.

Пс. Обратите внимание, что я больше не использовал AppFuse более года, поэтому мои знания AppFuse немного ржавые.