Django喜欢Java框架

时间:2010-02-09 07:00:18

标签: java django frameworks

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

7 个答案:

答案 0 :(得分:21)

查看LightAdmin pluggable administration interface以获取Spring / JPA支持的Web应用程序。

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

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

您需要做的就是声明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 );
        }
    };
}

}

答案 1 :(得分:12)

最近我发现了一个看起来非常像django的框架。它叫做playframework,你可以在这里找到它:

http://playframework.org/

我建议你在首页观看视频。

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

http://www.springsource.org/roo

答案 2 :(得分:12)

  

同样对于我的新项目我有一个很短的截止日期,我想使用某种加速开发的java框架。

对于使用我不熟悉的框架进行短期限的项目,我会保持谨慎。这听起来像截止日期超支的秘诀。坚持使用您已经熟悉的技术......并等待一个项目有更宽松的期限,以便您有时间犯错误。

答案 3 :(得分:7)

Django可以使用jython在jvm中运行, 更多信息请http://docs.djangoproject.com/en/dev/howto/jython/

答案 4 :(得分:4)

了解Grails:

http://www.grails.org/

答案 5 :(得分:3)

看看JHipster。 它为什么好?

  • 生成基于引导程序的GUI界面。
  • 生成的客户端代码基于nodejs和AngularJs
  • 生成的服务器端代码基于Spring启动
  • 自动生成单元测试和集成测试。
  • 您可以在客户端和服务器端框架方面做出广泛的选择。

这些意味着,您将在最先进的工具集和框架上构建开发。 JHipster不仅仅是这个,请看一下: https://jhipster.github.io/

答案 6 :(得分:1)

如果要使用Java编写Web代码,也可以尝试使用Spring Framework或Play Framework。要生成GUI,您可以使用Vaadin

以下是我在Spring的一些示例项目(到目前为止,我只使用了Spring,它似乎适用于我想要做的事情):

您还可以使用Project Lombok根据课程中的字段自动生成getter / setter。我在我的项目中也使用它,它帮助我编写更少的代码并专注于我必须使用我的编码技能解决的主要问题(如果我想在我自动生成的方法中添加自定义代码,我可以稍后写我需要)。