java - 类似 Django 的 Java 框架

标签 java django frameworks

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

最佳答案

看看LightAdmin pluggable administration interface用于 Spring/JPA 支持的 Web 应用程序。

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

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

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

}

关于java - 类似 Django 的 Java 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2227338/

相关文章:

java - 如何让 Activity 在暂停时对本地广播使用react?

django - 在没有竞争条件的情况下在 Django 中进行有条件更新

ios - 快速使用 WhirlyGlobe-Maply

java - 支持 html5 开发的最佳 java web 框架

Java InetAddress 失败

java - 如何在集成测试中测试 Mongo 索引?

java - JDBC:共享连接或使用连接池

python - Django 如何处理 AutoField 主键的增量?

python - 使用基类处理 django 中的异常

java - 简单来说就是 Spring 框架