我是Java新手(但有很多.NET经验)。
我需要快速启动并运行Java应用程序,所以我在这里寻找的是组件的建议,这些组件将简化或减少常见任务的痛苦,并且其回报将立即或至少以最小的投资获得及时学习如何使用该组件。我没有时间花在处理复杂或广泛的框架上 - 我正在寻找易于使用的插件并删除使用原始API的一些问题。但是,如果原始API是任何这些任务的最佳选择,那很好,请告诉我......
数据层 我想为MySQL,MSSQL,Postgres编写特定的提供程序,但是否则数据访问非常简单。我可能需要交易。你有什么建议?可以说,Spring Data Access提供了一些比JDBC更值得拥有的东西吗?还有什么我需要考虑的吗?我的猜测就像Hibernate会有点矫枉过正,并且需要很长时间才能启动和运行 - 你觉得怎么样?
中间层 松散耦合,基于接口的业务层。我需要能够通过Web应用程序和桌面应用程序与中间层进行交互 - 揭示此问题的最佳方式是什么?网络服务?
桌面应用 我知道Swing - 还有其他简单的桌面UI组件吗?我需要某种调度组件来运行后台任务。
网络应用 我需要某种缓存,我需要用户会话,我需要动态页面。从我可以看出,JSP是Java等价的PHP或其他一些服务器端脚本语言(并且不支持状态)。 MVC框架可能有点过分,除非有一个非常直接的框架来使用?我听说有一个Java等效的ASP.NET Web表单 - 它有什么用吗?也许JSP就足够了吗?
我正在寻找实用建议/您对组件的体验,而不是网络链接列表:)
感谢您的任何建议..
答案 0 :(得分:2)
我会查看Grails的模型/控制器/视图机制和Web前端。它可以使用ORM,模型,动态页面等快速启动并运行(它是一个RoR - Ruby-on-Rails - 模型)。
从那里开始,我会考虑使用Java RMI与桌面前端进行通信。 RMI是Java的标准配置,非常适合Java-to-Java通信要求。除非您有多语言/平台要求,否则我不会查看Web服务。 RMI设置非常简单,配置很少。
启用RMI的服务层必须使用Grails提供的模型进行拦截,但这应该是微不足道的。为了减少可能的客户端/服务器不可用性(由接口更改引起),您可以通过(例如)Java Web Start提供Java桌面(您将拥有Grails的Web服务器)并且它可以来自运行服务器的相同代码库。在更新后端时会保持最新的部署。
答案 1 :(得分:2)
AppFuse是一个可以使用最佳实践启动和预配置各种Java项目的工具。生成的代码也可以用于示例学习。
AppFuse是一个开源项目和应用程序,它使用基于Java平台构建的开源工具来帮助您快速有效地开发Web应用程序。它最初是为了消除为客户构建新的Web应用程序时发现的加速时间而开发的。 AppFuse的核心是项目框架,类似于IDE在您单击向导以创建新Web项目时创建的框架。
AppFuse支持以上所有内容。
答案 2 :(得分:2)
我将限制我对webapp部分的回答,因为我想回答其他部分的内容已经被其他人回答了。
据我所知,JSP是PHP的等价物
不完全正确。 JSP可以做更多的事情。更重要的是,(ab)使用JSP方式(使用内联Java代码作为 scriptlets )被认为是不好的做法。 JSP应该用作模板,您可以使用JSTL等标记库动态控制页面流,并使用Expression Language访问后端数据。
我听说有一个Java等效的ASP.NET网络表单
它被称为JavaServer Faces (JSF)。然而,有竞争,例如Apache Struts和Spring MVC。
- 有什么好处的?也许JSP就足够了吗?
JSF(与任何其他体面的MVC框架一样)抽象出你需要在普通的MVC应用程序中考虑的所有东西,这样你最终只得到一个XHTML(或JSP)文件和一个Javabean类。这样你就不需要控制请求(自定义Servlet等),处理请求参数(request.getParameter()等),基本验证/转换(需求,字符串/数字/日期输入类型转换),更新模型值(在javabeans中设置已处理/转换/验证的参数)等.MVC框架将透明地处理所有无聊的工作。
如果您需要在几页内开发每个saldo,JSP就足够了。但是如果你想开发更多的页面或web应用程序,那么你希望已经有了一个框架,这样你就不需要一次又一次地重新发明一般的工作。