很快我将不得不为一家公司启动一个网络项目,现在我需要选择一种技术来构建应用程序。我正在考虑使用 Java,因此我想找到一个可以帮助我构建应用程序的框架(我习惯了 PHP 框架,例如 CakePHP 和 CodeIgniter)。

我不明白的是,似乎存在很多没有相同目标的框架和技术。动作框架、组件框架...我能用一个而不能用另一个做什么?看来一个java web应用程序应该通过混合许多不同的技术来开发,因此我有点迷失了......我研究过不同的 java 框架,例如 JSF、Stripes、Struts2、Tapestry、Wicket 和 Spring。关于后者,我不知道这个框架的不同部分是什么,它能为我做什么,不能为我做什么。我能从 Spring 中得到什么以及我不需要什么......

因此 :构建 Java Web 应用程序需要什么?

我已经将 JSF 用于基本的 CRUD 应用程序,但我正在尝试找到更适合我的需求的东西。我们必须构建的应用程序既是一个社区平台也是一个商家网站,需要保护敏感数据:)

关于 ORM,我想我会选择 Hibernate ...我还听说过 Maven 或 Ant,它们能以什么方式帮助我?

任何建议/指南将不胜感激:-) 提前致谢。

编辑 :我的需求是:一个java框架是:

  • 有据可查/易于获得帮助/尽可能简单......
  • java越多越好
  • Ajax 友好/可以构建漂亮的 UI ...
  • 国际化
  • 作为一名学生,技能的适销性可能很重要......

要构建的应用程序既是

  • 社区网站:网络 2.0、增删改查
  • 电子商务网站

完整的规格尚未完成。

有帮助吗?

解决方案

这是一个很难回答的问题,最近我遇到了你的情况,我会尽力提供一些见解。基本上,Java 有大量的框架可供选择,没有人能真正告诉您哪一个最适合您,我们能做的就是为您提供一些技术的细分。

以下是我在寻找与您想要的相同答案时遇到的情况。

Java 有很多技术试图提供全栈解决方案。这些技术可以分解为其他技术,但一起使用时效果很好。

基本上,Web 应用程序分为 3 层:表示层、业务层和数据层。表示层是前端,即用户所看到的。您通常可以混合和匹配这三层的技术。例如,您可以使用带有 IOC 和 Hibernate 的 Spring 框架的 stripes 前端作为您的 ORM。

有许多出色的技术可用于表示层,包括 Spring-MVC、STRUTS、Stripes、Wicket、JSF/SEAM 和 Tapestry 等。其中大多数使用 JSTL 的 JSP 视图,但 wicket 除外,它实际上通过使用 Java“组件”(POJOS) 将 html 与逻辑完全分离。两种方法都有优点和缺点。wicket 方法的好处是您可以进行静态类型检查并完全分离 html,以便您可以将其交给设计人员。

对于业务层,人们通常使用某种控制反转框架(IOC)来进行依赖注入(DI)。IOC 的流行框架是 Spring 和 Seam,它们具有 Spring-security 等相关技术,并且通常受到其他技术的支持。Google Guice 似乎因直接 DI 框架而流行。

最后,对于数据层,大多数人倾向于使用 Hibernate 或 JPA。还有其他人,但我没有经验,无法提供更多信息。

Tapestry 是另一个框架,根据我的理解,它试图成为一个完整的堆栈,并采用类似 wicket 的方法(或者我猜 Wicket 采用类似 Tapestry 的方法)。Grails 是另一个使用 Groovy 的全栈框架,构建在 Spring 和 Hibernate 之上。如果您喜欢 Rails,Grails 就相当不错了。

大多数这些技术都有大量可用信息和非常活跃的邮件列表/IRC 聊天室。您需要做的就是查看它们,然后决定哪种方法最适合您。这里没有人能够告诉你你会喜欢什么。

如果您需要推荐,我想有一天使用 Wicket/Guice/Hibernate 堆栈。

其他提示

我最喜欢的肯定是春天。新的 Spring MVC 2.5 设置起来既简单又快速,有大量注释可以帮助您以声明方式连接控制器,从而节省大量打字时间。它还与 Spring 容器集成,这绝对是我最喜欢的轻量级 J2EE 替代容器。我通常将 SpringMVC 与简单的 JSP 结合起来,但还有很多其他视图技术可供选择。为了持久化,我通常使用 Hibernate。可能值得一看 春季原产地 这有点像没有 Groovy 的 Grails。Spring Security 提供了一种很好且简单的声明式安全方法,并集成到一大堆身份​​验证技术中。

Maven 和 ant 都是构建工具,而 Maven 还为您处理依赖关系。您“只需”设置描述您想要的库和版本要求的描述符,maven 就会为您下载所有库及其依赖项。不过,它迫使您遵循特定的项目布局。对于ant来说,有ivy来做依赖。

我建议你看一下 圣杯. 。Grails 是一个“按惯例编码”的 Web 应用程序框架,它构建在一系列经过验证的 Java 框架(Spring、Hibernate...)之上,并使用 格罗维 语言..

Grails 的优点在于您不需要了解 Spring、Hibernate 等知识。开始。但之后,如果有必要,您仍然可以使用这些框架的全部功能。

后端肯定使用Spring;他们的免费支持论坛上有一个很棒的社区(您也可以付费获得更正式的支持)。

关于您使用 Hibernate 的决定,您可能需要针对 JPA 进行编码,以便将您的应用程序与 Hibernate(这是几种 JPA 实现之一)解耦。

如果您想要 Ajax 前端,值得一看 中科 框架;它非常容易使用,无需学习 JavaScript,并且避免使用 DWR 等管道库。

其他人建议使用 Spring 是一个很好的主意。您会发现实际上会一起使用许多不同的框架,因为每个框架解决的问题略有不同。

我建议您在投入之前在每个框架或技术上投入一些时间,但您最终会希望让它们一起工作。例如,您可能需要 Struts + Spring + Hibernate 设置。配置它们可能会让人头疼。

所以我建议你使用 应用熔断器 这有助于生成具有基本功能的基本应用程序。它可以节省大量时间。当然,您需要了解为您配置的不同框架,因此这不是一个神奇的解决方案。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top