Есть ли в Java утилита-генератор CRUD, такая как Scaffolding in Rails? Может быть в любой структуре или даже в простых сервлетах. Должен генерировать контроллеры + представления в jsp, а не только код DAO ...




У Netbeans есть что-то вроде этого.
Здесь есть демонстрация: http://www.netbeans.org/kb/55/persistence-demo.html
Грааль имеет строительные леса.
Также обратите внимание, что JRuby и Rails также приемлемо работают на JVM.
извините за отрицательный голос, но я думаю, что в вопросе указана Java, а не JVM
@Bozho: а «Java» может означать только «Java, язык» и никогда не используется как «Java, платформа»?
ты в общем прав. Но в случае такой двусмысленности уместно сначала спросить ОП, что он на самом деле имеет в виду. В противном случае предполагается более простой (например, язык Java). Имо :)
У меня это есть давным-давно.
http://mahosoft.com/docs/WhitePaper-WEB-App-Spanish.pdf
Перевод Google на английский:
Хотя может быть и устаревшим.
В JBoss Seam есть скриптовая утилита под названием seam-gen, которая создает строительные леса:
http://docs.jboss.org/seam/1.1BETA2/reference/en/html/gettingstarted.html
В Google Code есть кривить. Я еще не пробовал, но выглядит многообещающе.
Поскольку вопрос был задан, вышло несколько фреймворков для Java. Проверьте Spring Roo и Play Framework. Есть также Строитель Skyway, который, я думаю, предшествовал обоим.
Попробуйте Grails на http://www.grails.org/
Он очень мощный, возможно, будет слишком мощным для рассматриваемой задачи, но он справляется с этим хорошо.
Spring Roo, кажется, именно то, что вы ищете: генерация кода CRUD, выдает чистый Java-код, который можно заставить работать полностью независимо от фреймворка.
Ну, не совсем чистая Java, там по умолчанию много AspectJ, и я слышал разные отчеты о том, насколько полностью его можно удалить без применения смазки для локтей.
Но я думал, что AspectJ - это Java.
@Ed: По сути, это расширение Java, которое добавляет новые языковые конструкции. Для этого требуется специальный компилятор (который обычно медленнее, чем обычный компилятор Java), а также (я думаю) компонент времени выполнения.
Проверить Тинамо
NetBeans может генерировать CRUD для существующей базы данных в JSF.
А что насчет OpenXava http://openxava.org?
См. Jspresso - http://www.jspresso.org/
Он имеет несколько интерфейсов (Flex, чистый HTML / Javascript, Swing и т. д.), Но не дает вам большой свободы в части просмотра. Однако стоит проверить.
См. Плагин Telosys Tools Eclipse на http://www.telosys.org/
Плагин подключается к базе данных, создает легкий репозиторий, позволяет настраивать репозиторий при необходимости и генерирует Java Beans, DAO, конвертеры XML, ScreenMaps (JSP) и т. д.
Вы можете создать веб-приложение, ориентированное на данные, за несколько минут
Учебники доступны здесь: sites.google.com/site/telosystutorial для Spring MVC, Spring Data, JPA, AngularJS и т. д.
Telosys - мой предпочтительный генератор кода, потому что он бесплатный, открытый, легкий, удобный и, кроме того, генерирует чистый Java-код. Поскольку все шаблоны настраиваются, вы можете создавать именно то, что хотите.
Не забывайте Играть. Чрезвычайно проста в использовании. Если у вас есть опыт работы с Ruby on Rails, вам будет легко адаптироваться и к Java.
Взгляните на такие инструменты, как:
MetaWidget http://www.metawidget.org/
ISIS http://incubator.apache.org/isis/index.html (ранее обнаженные объекты)
Они генерируют пользовательский интерфейс «на лету», но позволяют при необходимости настраивать пользовательский интерфейс.
Намного лучше, чем генерация кода.
Если у вас есть пример проекта, содержащего архитектуру CRUD (или любую другую), которую вы хотите, то Простые строительные леса может быть полезным подходом.
Это единственный класс, который сканирует существующую базу кода и создает шаблоны, которые затем можно применять к другим объектам. Например, MongoUserDao можно превратить в шаблон, который затем генерирует, скажем, MongoCustomerDao. Он работает с любым кодом и тестовыми приборами.
Очень простой, но выполняет свою работу, и это FOSS под лицензией MIT.
Репозиторий GitHub находится здесь: https://github.com/gary-rowe/SimpleScaffolding
Взгляните на Минутопроект
И попробуйте это демонстрации.
Касательно технологий
Если вы ищете только ORM + DAO, попробуйте трек BSLA-JPA2 (BSLA означает базовую архитектуру уровня Spring). Он продвигает шаблон маски для облегчения поиска.
Если вы хотите, чтобы постоянство, ориентированное на активную запись, выглядело как JOOQ или Roo
Если вы хотите, чтобы сервлеты смотрели на минутапроект 4 Openxava или 4 Primefaces
Если вы хотите, чтобы портлеты смотрели на Строитель услуг Liferay, то минутный проект сгенерирует входные данные service.xml из вашей БД.
Что касается вашей модели
Если вы хотите, чтобы ваш код (java) следовал соглашению java, а не соглашению DB, используйте minuteproject. Имеются обогатительные фабрики, позволяющие:
Это обогащение может применяться индивидуально в поле / объекте / пакете или глобально через соглашения (Итак, вы настраиваете свои собственные соглашения).
Я столкнулся с этим вопросом и попробовал много вариантов ответов. В итоге я нашел Lightadmin. Он не генерирует код CRUD, но обеспечивает приятный интерфейс для классов Entity с очень небольшим количеством кода. Чтобы сделать сущность User доступной через веб-интерфейс Lightadmin, требуется всего два изменения в файлах XML и затем класс UserAdministration:
public class UserAdministration extends AdministrationConfiguration<User> {
/* empty */
}
Вы можете настроить имена полей (и, возможно, многое другое) в этом классе Administration, но я считаю его уже очень полезным без какой-либо дополнительной настройки. Руководство Начиная действительно показывает, насколько это просто. После этих простых шагов вы можете открыть интерфейс администратора через http://localhost:8080/TestApp/admin.
Используйте JHipster. Он построен на основе популярного переднего инструмента для строительных лесов «yeoman». Он не только генерирует ваш бэкэнд, включая контроллеры, dao, безопасность, управление пользователями, метрики системы и API, ведение журнала и т. д., Используя Spring Boot и Spring MVC 4, но также генерирует ваш интерфейс с использованием angular js. Вы также получаете такие вкусности, как grunt, karma и bower, полностью настроенные и готовые к использованию! Наряду с этим вы также получаете управление версиями базы данных!
Он также имеет подгенераторы для генерации сущностей домена, которые генерируют вашу java и соответствующий интерфейс для управления его данными.
Запуск полного веб-приложения занимает 10 минут.
JHipster хорош, но он много генерирует для вас, большая часть из них представляет собой тонны шаблонов, которые вам могут даже не понадобиться, а внесение изменений в сгенерированный код не совсем тривиально. Если вы хотите использовать Spring Boot, вам лучше написать свое приложение с нуля, что действительно легко с начинающими, и использовать Spring Data REST + Angular-HATEOAS + yeoman. На мой взгляд, полезно посмотреть, как несколько технологий должны работать вместе.
Да ... JHipster действительно предоставляет много шаблонного кода, некоторые из них полезны, например, безопасность, ведение журнала, метрики, настройка angularjs, настройка grunt и т. д. почти всегда меняют пользовательский интерфейс, но код JS по-прежнему полезен. В целом, это хороший способ быстро начать работу, не тратя время на настройку. Я бы все равно пошел на это.
Кстати, новая версия JHipster разбивает материал на модули, поэтому вы можете использовать только то, что вам нужно. Это решит поднятую вами проблему.
В качестве альтернативы bootify.io может быть интересен, когда вам нужен простой код Spring Boot.
попробуйте Дженджи
Он генерирует CRUD и предоставляет вам серверную часть вместе с внешним интерфейсом с использованием таких спецификаций, как JPA, EJB, JSF framework, с использованием Primeface, безопасность Java, аутентификация, аудит, экспорт в Excel и PDF, управление пользователями, регистрация пользователей.
После этого вы можете скачать исходный код или развернуть на heroku. Я протестировал его, и он дал мне ожидаемые результаты
+1. но обратите внимание, grails на самом деле основан на Groovy, но groovy обратно совместим с java, и вы можете смешивать и сопоставлять классы groovy и java в одном проекте.