为简单的Java Web应用程序使用框架是否有意义?

我使用jsps和servlet做了很多java web开发,我发现这种方法简单灵活。 虽然涉及的一些基础工作 – 例如管理数据库连接 – 相当繁琐,但只需要开展新的Web应用程序就需要花费大量的工作。

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

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

请注意,我不是要问使用哪个框架(如果确实建议使用框架),因为这里已经提到过 。

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

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

如果你不使用网络框架,你通常最终会写一个 – 很糟糕。

是的,我会使用Web框架,原因如下:

  1. 增加导航function和控制。 即使您可能不需要它们,如果您在任何时候需要它们,它们也可供您使用
  2. 正如其他人所指出的,应用程序随着时间的推移而增长,您将在未来的某个时间点感受到框架的需求。 当您需要添加其他页面和导航时
  3. 允许您插入其他框架(如安全性和数据库访问框架)的function。 Spring是Java世界的一个典型例子。 你永远不必使用Spring,但是它可以很好地插入Struts,Spring MVC,Hibernate,Acegi等。最终可以省去你自己完成所有管道工作的麻烦。
  4. 支持!!! 良好的框架几乎总是有一个充满活力的社区来支持他们,并提出并回答问题。

这看起来似乎太麻烦了,但绝对可以为你节省很多时间

我说它实际上对你所采用的框架非常重要。 像Spring MVC这样的东西在你的代码中相当不引人注目,并允许你现有的东西按原样运行。 其他框架对于如何做事情有更具体的想法。

是的,它确实有意义。 应用程序可以增长和变化,并且可能需要框架可以在将来轻松提供的内容。

例如,在我的工作场所,我们有简单的jsp / servlet应用程序。 它只是因为我上面解释的内容而需要重写。 如果有人花时间去设置框架,我们今天就会更好。

是的,这是有道理的。 然而,你的问题隐含的是错误的(对你而言)框架可能比它的价值更加痛苦 – 这是真的。 在一些繁重的J2EE框架和像grails一样轻松愉快的东西之间存在着天壤之别。

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

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

有两种应用:

1)你丢弃的类型,永远不会再使用,因此不应该担心模块化,可维护性和清晰度。

2)真实的那种。

有时您的应用程序可能永远不会需要扩展,扩展或维护比您当前计划的更大的function集/用户群….我向您保证,这种看法总是错误的。

框架,特别是像Java中的Struts for MVC,Spring for MVC和dependency injection,Hibernate for Object-Relational Modeling等都是非常有价值的工具,可以在代码中实现模块化,可维护性和清晰度。 所以,回答你原来的问题……是的,强调。

不,除非:

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

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

  1. 您将自己获得所有框架缺陷
  2. 在你完全了解框架之前,你将无法做出真实的估计
  3. 您的团队将不会学习如何编写Web服务器
  4. 你会发现你的团队在谷歌上传递的时间越来越多,而不是通过编写代码来解决问题。

选择开源框架唯一最糟糕的事情就是在公司中建立一个独立的研发团队,他们应该创建“完整的最终公司框架”。

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

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

你是对的,它确实需要花费最初的努力来学习框架本身,但这种投资在你构建的第一个应用程序中为自己付出了代价。 像AppFuse这样的元框架使得它更容易上手,因为它为您预先配置了框架。

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

如果你认为一个框架作为一个标尺,左边是一个现成的现有框架工作开源或关闭,右边是所有自定义框架然后超级强加你的代码在该框架工作之上复杂程度增加在右边。 你走的越远,你就越有可能与框架工作(IMO)。

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

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

底线一些类型的框架总是有用的。

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

  1. 可扩展性
  2. 可维护性
  3. 明确划分您的模型(例如MVC)
  4. 开箱即用的组件(SessionManagement,身份validation等)
  5. 第三方插件
  6. 模块化inheritance自框架
  7. 很多其他的。

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

考虑使用框架,即使没有其他原因,它也会给你一个新的知识领域。 如果您有时间投资学习框架,那么您可能会及时发现,无论它们多么简单,都可以更轻松,更快速地将其用于新项目。

此外,如果我可以投票给SamBeran的post那么我会。 开始使用框架将涉及几个时刻“哦,太棒了!我不需要再次编写所有样板!”。

我会说使用一个 – 就像你说的那样,即使是一个简单的java网络应用程序也能让你的东西运行起来相当繁琐。 如果框架可以帮助您更快地完成工作并提供您需要的服务,我会说这是有道理的。