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

时间:2008-12-31 19:15:50

标签: java jsp servlets frameworks web-applications

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

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

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

请注意,我不是在询问使用哪个框架(如果确实建议使用框架),因为它已经被问到here

14 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:7)

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

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

答案 2 :(得分:7)

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

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

答案 3 :(得分:3)

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

答案 4 :(得分:2)

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

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

答案 5 :(得分:2)

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

答案 6 :(得分:2)

有什么替代方案?滚动你自己?在JSP中嵌入所有导航和逻辑?

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

答案 7 :(得分:2)

有两种应用程序:

1)你扔掉的那种,再也不用了,因此不必担心模块化,可维护性和清晰度。

2)真实的那种。

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

框架,特别是像Java中的Struts for MVC,Spring for MVC和依赖注入,Hibernate for Object-Relational Modeling等都是非常有价值的工具,可以提高代码的模块性,可维护性和清晰度。所以,回答你原来的问题......是的,着重。

答案 8 :(得分:2)

不,除非:

  1. 你没有任何java经验 在你的团队中
  2. 你正在做一个原型 必须在几小时内准备好
  3. 你不相信你的开发者 足以让他们写你的 应用
  4. 你不打算让你的 开发人员学习和改进
  5. 使用框架的危险包括但不限于:

    1. 您将获得所有框架缺陷 顶一个
    2. 直到你,你才能做出真实的估计     完全了解框架
    3. 您的团队不会学习如何编程     网络服务器
    4. 你会发现你的团队传递更多     更多的时间在谷歌而不是     通过编写代码解决问题。
    5. 选择开源框架唯一最糟糕的事情就是在公司中建立一个独立的研发团队,他们应该创建“完整的最终公司框架”。

答案 9 :(得分:1)

  

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

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

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

答案 10 :(得分:1)

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

如果你认为一个框架作为一个计量器,而左边是一个现成的现有框架工作开源或关闭,右边是所有自定义框架然后超级强加你的代码在该框架工作的顶部复杂性增加到右边。你走得越远,你就会对框架工作(IMO)产生更大的影响。

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

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

底线某种类型的框架总是有用的。

答案 11 :(得分:1)

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

  1. 可伸缩性
  2. 可维护性
  3. 明确划分您的模型(例如MVC)
  4. 开箱即用的组件(会话管理,身份验证等)
  5. 第三方插件
  6. 从框架继承的模块性
  7. 许多其他人。
  8. 此外,学习曲线是一个可变因素。根据您的技能,某些框架可能比其他框架更容易学习。

答案 12 :(得分:1)

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

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

答案 13 :(得分:0)

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