2

基于这个问题的公认答案,我设置了一个 NetBeans/tomcat 环境。在测试这个设置时,我试图创建一个 Java Web/Web 应用程序,但是被这个测试应用程序的框架选择所困扰。

选择是:

  • Spring Web MVC 2.5
  • JavaServer Faces
  • Struts 1.3.8
  • 休眠 3.2.5

在我的阅读(谷歌搜索和 SO)中,很快就迷失在树林里,所以我正在考虑选择一个,如果它没有成功,稍后切换/迁移到另一个。这样的方法可行吗?


项目背景

(由于遗留代码,必须基于Java)
它使用自签名小程序进行客户端渲染和交互;
Servlet 检索客户端请求的数据集;
数据库可能在某个远程服务器上,所以我打算使用 JDBC 来访问它;

遗留系统是基于 CORBA (ACE/TAO) 的,有许多需要翻译成 Java 的 C++ 模块,并且需要更改进行 CORBA 调用的现有 Java 模块(幸运的是,很少)以使用新翻译的 Java-模块。

如果你能想出更好的方法来处理这个项目,请告诉我。

(这个项目具有我喜欢的所有特点:有趣、具有挑战性,而且我学到了一些新东西)

4

3 回答 3

3

首先,仔细看看整个Spring 框架不会有什么坏处。文档非常好,从非常基本的模块开始,一直到 Web MVC 层(您可以决定是否要使用它,例如 Struts 集成也是可能的 - 但我发现 Struts 总是很麻烦)。Hibernate 可能是最流行的对象关系映射器框架。它用于存储、查询和检索您的域模型对象(您想要存储在数据库中的所有内容),但与 Web 层没有任何关系。

我个人不喜欢 JSF(另一个规范怪物,它需要比它需要更多的时间才能进入它)。如果您喜欢基于小部件的方法(将您的页面与组件放在一起,而不是输出普通的旧 HTML),您可能想看看Google Web Toolkit

另一个 Spring 解决方案是GRails。使用它真的很有趣,即使您必须学习另一种(脚本)语言(称为 Groovy),您仍然可以在框架中使用所有 Java 遗留类,因为 Groovy 类与 Java 类兼容(反之亦然)。

顺便说一句。我认为 CORBA 是一种技术/协议/标准,它特别允许您独立于语言访问方法和对象。维基百科:

公共对象请求代理体系结构 (CORBA) 是由对象管理组 (OMG) 定义的标准,它使以多种计算机语言编写并在多台计算机上运行的软件组件能够一起工作,即它支持多个平台。

那么为什么必须翻译 C++ 模块才能与 Java 对话呢?

于 2009-09-10T09:05:58.457 回答
3

首先,将 Hibernate 从您的列表中删除 - 如果您有 ORM 要求,建议您使用它,但它与 Web 层无关。

那么我认为你有两个选择:

  • Spring MVC 和 JSF
  • 支柱

沿着任何一条路线前进都会让你使用那个/那些 API,并且以后的切换永远不会是无痛的。

我的建议是:

  • 使用 Spring MVC - 无论如何你都可能会使用 Spring,所以这是一个自然的选择。
  • 忽略 JSF,自己编写 HTML,使用 JSTL 渲染 bean。
  • 使用 JQuery/JavaScript 丰富用户体验。
  • 使用 Hibernate 进行对象持久化。
于 2009-09-10T09:08:11.387 回答
1

我认为只选择最小值并根据需要添加是个好主意。您很有可能通过这种方式获得简单性。

一个想法可能是从 Spring 作为您的“宏伟计划”和集成技术开始。然后根据需要添加补语:

  • 持久性:休眠
  • javaScript:选择一个与您正在使用的 Spring MVC 模块相匹配的 js 库
于 2009-09-10T09:00:07.427 回答