【问题标题】:MVC Framework for existing application现有应用程序的 MVC 框架
【发布时间】:2011-03-01 09:57:51
【问题描述】:
我正在修改很久以前编写的现有 java web 应用程序,它是以最错误的方式编写的。它在 JSP 文件中有业务逻辑和 sql 语句。
由于某些约束,我无法重新设计整个应用程序。但我可以在我添加的任何新功能中实现更好的设计。
任何人都可以向我推荐任何可以轻松集成到现有应用程序中的 MVC 框架。我需要一个不依赖于许多外部 jar 文件并且不会对现有应用程序造成任何问题的框架。
【问题讨论】:
标签:
java
model-view-controller
jsp
jakarta-ee
frameworks
【解决方案1】:
如果你无法重新设计整个应用程序并且担心框架的重量,那么我建议不要添加框架。您最终会得到一个应用程序不一致且没有太多好处的 Frankenstein 构建。
相反,为什么不自己推出呢?当您添加新功能(或修改现有功能)时,您不必将所有内容都塞进一个 jsp。创建您自己的数据访问层和您自己的业务对象,并将它们相互链接并适当地链接到您的 jsps 中的 UI。
【解决方案2】:
我正在修改现有的 java web
长时间编写的应用程序
以前,它写在wrost
可能的方式。它有业务逻辑
和 JSP 文件中的 sql 语句。
对我来说,这听起来像是一个很好的候选人。
由于一定的限制,我
不能重新设计整个
应用。但我可以实施
任何新功能的更好设计
我补充。
整个应用需要重新设计,但你不能重新设计整个应用。很矛盾。
任何人都可以向我推荐任何 MVC
我可以轻松的框架
集成到现有的应用程序中。我需要
有不依赖的框架
许多外部jar文件,它确实
不会导致现有的任何问题
应用。
您不禁会导致现有应用程序出现问题,并且如果您使用框架,将存在外部 JAR 依赖项。我仍然推荐它,因为一个框架会给你一个值得额外 JAR 的提升。你的 WAR 文件会更大——那又怎样?磁盘空间很便宜。
在我看来,MVC 是您遇到的最少的问题。您应该首先专注于正确分层的应用程序的想法。如果您有明确定义的持久性和服务层,您可能会有机会。
现在考虑问题,而不必担心 UI。从持久层开始。获取 DAO 和模型对象。然后转到服务层:使用 DAO 和模型对象实现的事务、工作单元和用例。对两层进行彻底的单元测试。
一旦有了这些,您就可以集中精力使视图层正常工作。让控制器与服务交互会更容易。您的 UI 可以是 HTML、CSS 和 JavaScript 或 Flex。所有逻辑都将移出视图并进入它所属的后端。
不要害怕 JAR 依赖。它可以引导你远离对你有帮助的东西。我首先推荐Spring。它将帮助您解决所有分层问题。它的 web MVC 也一样好。