4

我是 Java 新手(但有相当多的 .NET 经验)。

我需要让 Java 应用程序快速启动并运行,所以我在这里寻找的是有关组件的建议,这些组件将简化或减少常见任务的痛苦,其回报将是立竿见影的,或者至少花费最少的时间投资学习如何使用组件。我没有几周的时间来掌握复杂或广泛的框架——我正在寻找易于使用的插件,并消除使用原始 API 的一些问题。但是,如果原始 API 是任何这些任务的最佳选择,那很好,请告诉我......

数据层 我想为 MySQL、MSSQL、Postgres 编写特定的提供程序,但除此之外,数据访问非常简单。我可能需要交易。你有什么建议?是否说 Spring Data Access 提供了比 JDBC 更有价值的东西?还有什么我需要考虑的吗?我的猜测是,像 Hibernate 这样的东西会过分杀伤力,并且需要很长时间才能启动和运行 - 你怎么看?

中间层 松散耦合、基于接口的业务层。我需要能够通过 Web 应用程序和桌面应用程序与中间层进行交互 - 公开它的最佳方式是什么?网络服务?

我了解 Swing 的桌面应用程序- 还有其他简单的桌面 UI 组件吗?我需要某种调度组件来运行后台任务。

Web App 我需要某种缓存,我需要用户会话,我需要动态页面。据我所知,JSP 是 PHP 或其他服务器端脚本语言的 Java 等价物(并且不支持状态)。除非有一个非常直接的框架可以使用,否则 MVC 框架可能是矫枉过正的?我听说有一个相当于 ASP.NET Web 表单的 Java - 它有什么好处吗?也许 JSP 在这里就足够了?

我正在寻找实用的建议/您的组件经验,而不是网络链接列表:)

感谢您的任何建议..

4

3 回答 3

2

我会查看Grails的模型/控制器/视图机制和 Web 前端。它会让你快速启动并运行 ORM、模型、动态页面等(它是一个 RoR - Ruby-on-Rails - 模型)。

从那里开始,我将研究使用Java RMI与桌面前端进行通信。RMI 是 Java 的标准配置,非常适合 Java 到 Java 的通信需求。除非您有多语言/平台要求,否则我不会查看 Web 服务。RMI 的设置非常简单,几乎不需要配置。

您的启用 RMI 的服务层必须使用 Grails 提供的模型进行拦截,但这应该是微不足道的。为了减少可能的客户端/服务器不兼容(由界面更改引起),您可以通过(例如)Java Web Start提供 Java 桌面(您将拥有一个由 Grails 提供的 Web 服务器),它可以来自与您的相同代码库服务器正在运行。更新后端时会维护最新的部署。

于 2010-01-14T11:54:18.597 回答
2

AppFuse是一个可以使用最佳实践启动和预配置各种 java 项目的工具。生成的代码也可用于示例学习。

AppFuse 是一个开源项目和应用程序,它使用构建在 Java 平台上的开源工具来帮助您快速高效地开发 Web 应用程序。它最初的开发目的是消除在为客户构建新的 Web 应用程序时发现的启动时间。AppFuse 的核心是一个项目框架,类似于当您通过向导单击以创建新的 Web 项目时由 IDE 创建的框架。

  • 对于数据层:JPA(Hibernate 或其他 JPA 提供程序)
  • 对于中间层:Spring - 它非常强大,提供了许多东西,如事务支持、调度等。它可以很容易地与 Apache CXF 一起使用以公开 Web 服务。
  • 对于Web 应用程序- JSF、Spring MVC、Struts
  • 对于桌面应用程序- Swing 完全可以。它具有处理后台任务的能力。SwingX - 一堆不错的组件。

AppFuse 支持以上所有功能。

于 2010-01-14T11:54:45.320 回答
2

我将把我的答案限制在 webapp 部分,因为我想回答其他部分的事情已经被其他人回答了。

据我所知,JSP 是 PHP 的 Java 等价物

不完全正确。JSP 可以做的不止这些。甚至,(ab)以 PHP 方式使用 JSP(使用内联 Java 代码作为scriptlet)被认为是不好的做法。JSP 应该用作模板,您可以在其中使用JSTL等标记库动态控制页面流,并使用Expression Language访问后端数据。

我听说有一个相当于 ASP.NET 网络表单的 Java

它称为JavaServer Faces (JSF)。但是有竞争,例如Apache StrutsSpring MVC

- 有什么好处吗?也许 JSP 在这里就足够了?

JSF(与任何其他体面的 MVC 框架一样)将您在普通 MVC 应用程序中需要考虑的所有内容抽象出来,以便您最终得到一个 XHTML(或 JSP)文件和一个 Javabean 类。这样您就不需要控制请求(自定义 Servlet 等)、处理请求参数(request.getParameter() 等)、基本验证/转换(需求、字符串/数字/日期输入类型转换)、更新模型值(在 javabeans 中设置已处理/转换/验证的参数)等。MVC 框架将透明地处理所有无聊的工作。

如果您需要为每个 Saldo 开发几页,JSP 可能就足够了。但是如果你想开发更多的页面或 web 应用程序,那么你希望已经有一个框架,这样你就不需要一次又一次地重新发明通常的工作。

于 2010-01-14T13:32:01.800 回答