Django喜欢Java框架

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

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

http://playframework.org/

我建议你在首页观看video。

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

http://www.springsource.org/roo

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

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

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

您需要做的就是在web.xml中声明Maven依赖关系并启用管理面板。 在此之后,您将拥有function丰富的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 longTermBookingPredicate() { return new DomainTypePredicate() { @Override public boolean apply( final Booking booking ) { return booking.getNights() > 20; } }; } public static DomainTypeSpecification smokingApartmentsSpec( final boolean isSmokingApartment ) { return new DomainTypeSpecification() { @Override public Predicate toPredicate( final Root root, final CriteriaQuery query, final CriteriaBuilder cb ) { return cb.equal( root.get( "smoking" ), isSmokingApartment ); } }; } } 

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

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

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

看看Grails:

http://www.grails.org/

看看JHipster。 它为什么好?

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

这些要点意味着,您将在最先进的工具集和框架上构建开发。 JHipster远不止于此,请看: https ://jhipster.github.io/

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

  • Spring Framework主页
  • 播放框架主页

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

  • Spring Security演示
  • 使用数据库的示例CRUD应用程序 – 对于数据库连接,我使用了Hibernate ORM并进行validation,我使用了Hibernate Validator。

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