9

我已经使用 jsps 和 servlet 进行了大量的 Java Web 开发,我发现这种方法简单而灵活。但是,其中涉及的一些基础工作(例如管理数据库连接)相当乏味,而且仅仅为了启动一个新的 Web 应用程序就需要大量的工作。

因此,我第一次考虑使用框架,但我对框架的印象是它们主要用于大型 J2EE 应用程序并且涉及很多复杂的配置。我正在寻找的是一些简单的东西(在最初的学习曲线之后)将使我能够尽快启动并运行一个新的网络应用程序。

所以我的问题是 - 为简单的 Java Web 应用程序使用框架是否有意义?

请注意,我不是在问要使用哪个框架(如果确实推荐了一个框架),因为这里已经问过了。

4

14 回答 14

8

如果你不使用 web 框架,你通常会写一个——很糟糕。

于 2009-01-01T20:29:49.393 回答
7

是的,出于以下原因,我会使用 Web 框架:

  1. 增加导航功能和控制。即使您可能不需要它们,但如果您在任何时候需要它们,它们就在那里供您使用
  2. 正如其他人所指出的那样,应用程序会随着时间的推移而增长,并且您会在未来的某个时间点感觉到对框架的需求。当您需要添加其他页面和导航时
  3. 允许您插入其他框架的功能,例如安全性和数据库访问框架。Spring 是 Java 世界中的一个典型例子。您永远不必使用 Spring,但它与 Struts、Spring MVC、Hibernate、Acegi 等的插件非常好。它最终为您省去了自己做所有管道的麻烦。
  4. 支持!!!好的框架几乎总是有一个充满活力的社区来支持它们并提出和回答问题。

一开始可能看起来很麻烦,但绝对可以在将来为您节省很多时间

于 2008-12-31T19:33:46.887 回答
7

这很有道理。我的团队已经在我们的开源堆栈上度过了五年的大部分时间,无论如何,我们有一个“种子”项目(像 appfuse 一样工作),我们用它来创建所有新的 Web 应用程序。即使是从维护应用程序的角度来看的简单的两个寻呼机,它看起来也和其他应用程序一样,只是更小。

简而言之,您现在不会获得任何投资回报,但随着项目的发展和维护,您将获得回报。

于 2008-12-31T19:53:06.847 回答
3

我会说你选择哪个框架实际上很重要。像 Spring MVC 这样的东西在您的代码中相当不显眼,并且允许您现有的东西按原样运行。其他框架对您应该如何做事有更具体的想法。

于 2008-12-31T19:34:45.950 回答
2

是的,它确实有道理。应用程序可以增长和变化,并且可能需要框架将来可以轻松提供的东西。

例如,在我的工作场所,我们有简单的 jsp / servlet 应用程序。由于我上面解释的原因,它需要重写。如果有人花时间来完成框架设置,我们今天的状态会更好。

于 2008-12-31T19:23:39.980 回答
2

是的,这是有道理的。然而,您的问题隐含的是,错误的(对您而言)框架可能比它的价值更痛苦 - 这是真的。一些繁重的 J2EE 框架和一些轻巧而愉快的框架(如 grails)之间有着天壤之别。

于 2008-12-31T19:41:35.263 回答
2

有什么选择?自己滚?在 JSP 中嵌入所有导航和逻辑?

我同意那些说 Web 框架值得的人的观点。现在确实有数百个(例如,Struts、JSF、Spring、Wicket 等)。选择一个适合你的。

于 2008-12-31T21:15:51.673 回答
2

有两种应用:

1)你扔掉并且不再使用的那种,因此不应该担心模块化,可维护性和清晰度。

2)真实的种类。

有时看起来您的应用程序可能永远不必增长、扩展或服务于比您当前计划的更大的功能集/用户群......我向您保证,这种看法总是错误的。

框架,特别是像 Java 中的 Struts for MVC、Spring for MVC 和 Dependency Injection、Hibernate for Object-Relational Modeling 都是非常有价值的工具,它们可以使您的代码具有模块化、可维护性和清晰性。所以,回答你原来的问题....是的,强调。

于 2008-12-31T21:36:03.520 回答
2

不,除非:

  1. 你的团队没有任何 Java 经验
  2. 你只是在做一个必须在几个小时内准备好的原型
  3. 您不够信任您的开发人员,无法让他们编写您的应用程序
  4. 您不打算让您的开发人员学习和改进

使用框架的危险包括但不限于:

  1. 您将自行解决所有框架缺陷
  2. 在您完全了解框架之前,您将无法进行现实的估计
  3. 您的团队不会学习如何编写 Web 服务器
  4. 您会发现您的团队在 google 上花费的时间越来越多,而不是通过编写代码来解决问题。

唯一比选择开源框架最糟糕的是,公司里有一个独立的研发团队,应该创建“大完整的终极公司框架”。

于 2010-11-21T11:14:36.620 回答
1

但我对框架的印象是,它们主要用于大型 J2EE 应用程序并且涉及很多复杂的配置

不一定是真的。好的框架可以很好地扩展,以便它们将您从小型应用程序带到非常大的应用程序。今天的许多框架都在朝着零配置发展,因此您会发现它们更容易使用。

您是对的,学习框架本身确实需要初步努力,但是在您构建的第一个应用程序中,这种投资就可以收回成本。像AppFuse这样的元框架让您更容易上手,因为它为您预先配置了框架。

于 2009-01-01T05:31:40.347 回答
1

框架对大多数应用程序都有意义。您可能需要构建自己的框架或采用其他一些框架。最重要的问题是数据结构的粒度。我的意思是你只需要输入数据还是需要解析、编译和执行动态代码?

如果您将框架视为衡量标准,左侧是所有现成的开源或封闭框架,右侧是所有自定义框架,那么将您的代码超级强加于复杂程度增加的框架之上向右。您越往右走,您在框架 (IMO) 上的挣扎就越大。

但是,您也可以慢慢地从现有框架迁移到自定义框架。

还有关于您的业务的问题。如果您为一家不将软件视为其核心能力的企业工作,例如银行或医院,那么您需要将其纳入您想要构建的框架的多少。

归根结底,某种类型的框架总是有用的。

于 2009-01-01T05:43:18.763 回答
1

由于学习曲线,使用框架可能会为您的 Web 应用程序开发增加一些开销。但是,根据您选择的框架,您可能能够实现以下好处:

  1. 可扩展性
  2. 可维护性
  3. 清除模型的划分(例如 MVC)
  4. 开箱即用的组件(会话管理、身份验证等)
  5. 第三方插件
  6. 从框架继承的模块化
  7. 好多其它的。

此外,学习曲线是一个可变因素。根据您的技能,某些框架可能比其他框架更容易学习。

于 2009-01-02T16:47:05.183 回答
1

考虑使用框架绝对是有意义的,即使没有其他原因,它会给你一个新的知识领域。如果您有时间花时间学习一个框架,那么您很可能会及时发现,无论多么简单,将其用于新项目都会更容易、更快捷。

另外,如果我可以投票给 SamBeran 的帖子,那么我会的。开始使用框架将涉及“哦,太好了!我不需要再写所有的样板!”的时刻。

于 2011-04-30T13:36:57.013 回答
0

我会说使用一个 - 就像你说的那样,即使是一个简单的 java web 应用程序,启动和运行东西也是相当乏味的。如果该框架可以帮助您更快地完成工作并提供您需要的服务,我会说这是有道理的。

于 2008-12-31T19:23:03.647 回答