Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类似Django的Java框架_Java_Django_Frameworks - Fatal编程技术网

类似Django的Java框架

类似Django的Java框架,java,django,frameworks,Java,Django,Frameworks,我是一名Java开发人员。有没有Django/RubyonRails之类的Java框架? 我不喜欢为我做的每个项目创建管理面板。一次又一次地做同样的事情是很无聊的。 另外,对于我的新项目,我的截止日期很短,我想使用某种Java框架来加快开发速度。看看Grails: 最近我发现了一个非常像django的框架。它被称为playframework,您可以在这里找到它: 我建议你看头版的视频 另一个基于Java的类似django的框架是SpringRoo,但我认为它还没有完全准备好。上次我使用它时,文

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

看看Grails:


最近我发现了一个非常像django的框架。它被称为playframework,您可以在这里找到它:

我建议你看头版的视频

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


Django可以使用jython在jvm中运行, 更多信息请点击此处

另外,对于我的新项目,我的最后期限很短,我想使用某种java框架来加快开发

对于使用我不熟悉的框架来完成一个期限很短的项目,我会非常谨慎。这听起来像是一个超期的秘诀。坚持使用您已经熟悉的技术。。。等待一个期限更宽松的项目,这样你就有时间犯一些错误。

看看Spring/JPA支持的web应用程序

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

就我个人而言,我为我的Java项目解决了这个问题,只需插入LightAdmin库并从DSL配置中进行一些定制

您只需在web.xml中声明Maven dependency&enable administration面板。在此之后,您将拥有一个功能丰富的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 );
        }
    };
}

}
@管理(Booking.class)
公共课预订管理{
公共静态范围配置单元范围(最终范围配置单元生成器范围生成器){
返回范围生成器
.scope(“全部”,全部())
.范围(“吸烟公寓”,规范(吸烟公寓规范(真实))
.范围(“无烟公寓”,规范(吸烟公寓规范(假))
.scope(“长期预订”,过滤器(longTermBookingPredicate()).defaultScope().build();
}
公共静态过滤器ConfigurationUnit过滤器(最终过滤器ConfigurationUnitBuilder过滤器生成器){
返回过滤器生成器
.filter(“客户”、“用户”)
.filter(“预订酒店”、“酒店”)
.filter(“签入日期”、“签入日期”).build();
}
公共静态FieldSetConfigurationUnit列表视图(最终FieldSetConfigurationUnitBuilder fragmentBuilder){
返回碎片生成器
.字段(“用户”).标题(“客户”)
.field(“酒店”)。标题(“酒店”)
.字段(“签入日期”).标题(“签入日期”)
.字段(“吸烟”).标题(“吸烟”)
.字段(“床”)。标题(“床”)
.build();
}
公共静态域TypePredicate longTermBookingPredicate(){
返回新的DomainTypePredicate(){
@凌驾
公共布尔应用(最终预订){
返回预订。getNights()>20;
}
};
}
公共静态域类型规范SmokingApartsSpec(最终布尔值isSmokingApartment){
返回新的DomainTypeSpecification(){
@凌驾
公共谓词toPredicate(最终根根、最终CriteriaQuery查询、最终CriteriaBuilder cb){
返回cb.equal(root.get(“吸烟”),IsSmoking公寓);
}
};
}
}
看看JHipster。 为什么它好

  • 生成基于引导的GUI界面
  • 生成的客户端代码基于nodejs和AngularJs
  • 生成的服务器端代码基于Spring引导
  • 单元测试和集成测试将自动生成
  • 关于客户端和服务器端框架,您有多种选择
这些要点意味着,您将在最先进的工具集和框架上构建您的开发。JHipster远不止这些,请看:

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

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

  • -对于数据库连接,我使用ORM,对于验证,我使用Hibernate Validator

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

感谢您的回复。使用play开发的应用程序能否在tomcat上运行?据我所知,您可以将所有文件打包成.war,然后部署到tomcat服务器上。但实际上没有必要这样做。您只需使用集成服务器,然后在前面使用http代理,如nginx/lighty。再次使用Thanaks。我必须从第三方在共享服务器上开发应用程序。我想第三方不允许我运行集成服务器。您应该注意,您是主要作者。虽然这是通过提供的公开信息,但我认为这不会降低您答案的价值(我投了赞成票)。不幸的是,这不再是开发的,它完全破坏了Spring Boot应用程序。注释标记为非建设性。至少添加一些链接,让我们互相帮助。请阅读此内容并遵循gui