Я разработчик Java. Существует ли какая-то инфраструктура Django/Ruby-on-Rails для Java? Мне не нравится создавать панель администратора для каждого проекта, который я делаю. Скучно повторять то же самое снова и снова. Также для моего нового проекта у меня короткий срок, и я хотел бы использовать какую-то структуру Java, которая ускоряет разработку.
Django как фреймворк для Java
Ответ 1
Недавно я нашел фреймворк, который очень похож на django. Это называется playframework, и вы можете найти его здесь:
Я предлагаю вам посмотреть видео на первой странице.
Другой Java-подход, основанный на django, - это Spring Roo, но, на мой взгляд, он не совсем готов. В прошлый раз, когда я использовал его, документация практически не существовала.
Ответ 2
Взгляните на подключаемый интерфейс администрирования LightAdmin для веб-приложений с поддержкой Spring/JPA.
Как правило, при разработке веб-приложений вам необходимо иметь какой-то административный интерфейс с полезным пользовательским интерфейсом, и ему скучно разрабатывать его с нуля все время и поддерживать его в будущем.
Лично я решил это для своих проектов Java, просто подключив библиотеку LightAdmin и выполняя некоторые настройки из конфигураций DSL.
Все, что вам нужно сделать, это объявить зависимость Maven и включить панель администрирования в вашем web.xml. Сразу после этого у вас будет многофункциональный интерфейс с полной поддержкой CRUD, фильтрацией, областями, безопасностью и т.д.
LightAdmin DSL для примера настройки панели администратора:
@Administration( Booking.class )
public class BookingAdministration {
public static ScopesConfigurationUnit scopes( final ScopesConfigurationUnitBuilder scopeBuilder ) {
return scopeBuilder
.scope( "All", all() )
.scope( "Smoking Apartments", specification( smokingApartmentsSpec( true ) ) )
.scope( "Non Smoking Apartments", specification( smokingApartmentsSpec( false ) ) )
.scope( "Long-term bookings", filter( longTermBookingPredicate() ) ).defaultScope().build();
}
public static FiltersConfigurationUnit filters( final FiltersConfigurationUnitBuilder filterBuilder ) {
return filterBuilder
.filter( "Customer", "user" )
.filter( "Booked Hotel", "hotel" )
.filter( "Check-In Date", "checkinDate" ).build();
}
public static FieldSetConfigurationUnit listView( final FieldSetConfigurationUnitBuilder fragmentBuilder ) {
return fragmentBuilder
.field( "user" ).caption( "Customer" )
.field( "hotel" ).caption( "Hotel" )
.field( "checkinDate" ).caption( "Check-In Date" )
.field( "smoking" ).caption( "Smoking" )
.field( "beds" ).caption( "Beds" )
.build();
}
public static DomainTypePredicate<Booking> longTermBookingPredicate() {
return new DomainTypePredicate<Booking>() {
@Override
public boolean apply( final Booking booking ) {
return booking.getNights() > 20;
}
};
}
public static DomainTypeSpecification<Booking> smokingApartmentsSpec( final boolean isSmokingApartment ) {
return new DomainTypeSpecification<Booking>() {
@Override
public Predicate toPredicate( final Root<Booking> root, final CriteriaQuery<?> query, final CriteriaBuilder cb ) {
return cb.equal( root.get( "smoking" ), isSmokingApartment );
}
};
}
}
Ответ 3
Также для моего нового проекта у меня короткий срок, и я бы хотел использовать какую-то структуру java, которая ускоряет разработку.
Я бы с осторожностью относился к выполнению проекта с коротким сроком, используя фреймворк, с которым я не знаком. Это звучит как рецепт переполнения крайних сроков. Придерживайтесь технологий, с которыми вы уже знакомы... и ждите проекта с более расслабленными сроками, когда вы можете позволить себе время совершить несколько ошибок.
Ответ 4
Django можно запустить в jvm с помощью jython, более подробная информация здесь http://docs.djangoproject.com/en/dev/howto/jython/
Ответ 5
Посмотрите на Grails:
Ответ 6
Посмотрите на JHipster. Почему это хорошо?
- Создайте интерфейс GUI, основанный на загрузке.
- Созданный код клиентской стороны основывается на nodejs и AngularJs
- Сгенерированный код сервера основан на Spring boot
- Unit test, и тесты интеграции автоматически генерируются.
- У вас есть широкий выбор возможностей для клиентской и серверной систем.
Эти точки означают, что вы построите свое развитие на современном наборе инструментов и фреймворках. JHipster намного больше, чем это, посмотрите: https://jhipster.github.io/
Ответ 7
Вы можете попробовать также Spring Framework или Play Framework, если вы хотите закодировать в Java для Интернета. Чтобы создать GUI, вы можете использовать Vaadin
Вот некоторые из моих примерных проектов в Spring (я использовал только Spring до сих пор и, похоже, хорошо работает для того, что я хочу делать):
- Spring демонстрация безопасности
- Пример приложения CRUD с базой данных - для подключения к базе данных я использовал Hibernate ORM и для проверки я использовал Hibernate Validator.
Вы также можете автоматически генерировать геттеры/сеттеры на основе полей, которые у вас есть в ваших классах, используя Project Lombok. Я использую это тоже в своих проектах, это помогает мне писать меньше кода и сосредоточиться на основных проблемах, которые я должен решить, используя свои навыки кодирования (если я хочу добавить собственный код в методы, которые я генерировал автоматически, я могу написать их позже, как Мне нужно).