Django like framework for Java [已关闭]

2022-09-01 15:11:42

我是一名Java开发人员。有没有一些Django/Ruby-on-Rails类型的Java框架?我不喜欢为我做的每个项目创建管理面板。一次又一次地做同样的事情很无聊。同样对于我的新项目,我有一个很短的截止日期,我想使用某种Java框架来加速开发。


答案 1

看看适用于 Spring/JPA 支持的 Web 应用程序的 LightAdmin 可插拔管理界面

通常,在Web应用程序开发中,您需要具有某种具有可用UI的管理后端,并且一直从头开始开发它并在将来维护它是很无聊的。

就个人而言,我通过简单地插入LightAdmin库并从DSL配置进行一些自定义来为我的Java项目解决了这个问题。

您需要做的就是声明 Maven 依赖项并在 Web.xml中启用管理面板。在此之后,您将拥有功能丰富的UI,其中包含完整的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 );
        }
    };
}

}

答案 2

最近我发现了一个看起来很像django的框架。它被称为playframework,你可以在这里找到它:

http://playframework.org/

我建议您观看首页上的视频。

另一个基于Java的类似django的框架是Spring Roo,但在我看来,它还没有完全准备好。上次我使用它时,文档几乎不存在。

http://www.springsource.org/roo


推荐