我有一个相当大的(80k loc)java 桌面应用程序,它与数据库通信。我们现在正在考虑通过 Web 应用程序公开数据库的某些部分,使用现有的代码库,最好不必修改它。
我在数据访问、业务逻辑和表示层之间有很好的分离,但我们没有使用企业 Java bean 或类似的东西(如果这很重要的话)。
最好的前进方式是什么?哪个 java web 框架最适合这个问题?学习曲线并不是很重要,因为我还没有在网络上做过任何 Java 开发......
我有一个相当大的(80k loc)java 桌面应用程序,它与数据库通信。我们现在正在考虑通过 Web 应用程序公开数据库的某些部分,使用现有的代码库,最好不必修改它。
我在数据访问、业务逻辑和表示层之间有很好的分离,但我们没有使用企业 Java bean 或类似的东西(如果这很重要的话)。
最好的前进方式是什么?哪个 java web 框架最适合这个问题?学习曲线并不是很重要,因为我还没有在网络上做过任何 Java 开发......
确实,这取决于您已经拥有什么,以及您当前桌面应用程序的设计有多好。如果不修改它,你可能无法使用任何现有代码,或者可能是最小的现有代码,如果它的设计糟糕,并且一切都是紧密耦合的。
假设您拥有一个设计良好的系统,那么一切都可以很好地解耦。您可以查看Stripes为网络制作演示文稿,并使用您现有的数据访问和业务代码。我祝你一切顺利。
很少有其他值得研究的好东西是Grail 上的 Groovy和Wicket。
我不推荐像Seam和Spring这样的东西,它们更像是一个容器和复杂的大型框架,它们几乎可以为您提供一切,解决几乎所有问题。正如您提到的,您已经拥有一个完整的系统,您只需要制作一个 Web 界面即可将其发布到 Web 上,IMO 不推荐这些。
JSF是一个很好的框架,但据少数人说,它可能会让你发疯并且学习曲线很长。
Grails 附带了一大堆在后台配置的东西,包括 Hibernate 和 Spring。它使生成动态页面发送到浏览器变得非常容易。您可能需要做的是设置调用 Grails 服务的控制器,这些服务引用您现有的代码,因为您可能不希望 Grails 管理您的数据库交互。Grails 的缺点不在于它是用 Groovy 编写的,这对于 Java 程序员来说很容易学习,而在于 IDE 对 Groovy 的支持仍在成熟中。不过,如果您想要快速提高生产力,这仍然是一条失败的道路。
Struts 2 提供了一个干净的命令模式框架实现,它与前端的 JSP(或速度或 FreeMarker 模板)对话。要使用它,您将配置操作以调用现有代码。您可能需要根据您的需要调查将 Spring 添加到组合中。
还有其他选择,但这是我取得了一些成功的两个。