代码之家  ›  专栏  ›  技术社区  ›  Berlin Brown

您是否发现Spring和Hibernate Web应用程序的成功

  •  3
  • Berlin Brown  · 技术社区  · 16 年前

    我正在开发中型Web应用程序4-5选项卡,用户登录约10万个用户。我们正在从头开始重新设计应用程序,并使用连接到MySQL的Spring和Hibernate。

    您是否遇到过重大问题以及Spring在哪里对您的应用程序有好处?

    9 回复  |  直到 16 年前
        1
  •  8
  •   alasdairg    16 年前

    没有重大问题。春天特别有益于:

    • 使所有配置管道保持一致和简单
    • 依赖注入以支持更好的代码分解
    • 用于休眠的声明性“在视图中打开会话”功能
    • 声明性事务划分
    • Acegi(现在是Spring Security)项目使集成自定义安全模型变得容易
    • Spring数据访问支持消除了对任何JDBC访问的大量样板文件的需求——也许这并不能提高Hibernate的使用率,但我们两者兼而有之。它还允许您无缝地一起使用JDBC和Hibernate
        2
  •  4
  •   Julien Chastang    16 年前

    除了到目前为止所说的,我还将关注Spring(例如@controller)和Hibernate(例如@entity)的更新样式注释。它将进一步减少代码库,从而减少需要维护的代码。不利的是,有一个相当重要的学习曲线,但最终我学到的教训是,春天+冬眠的好处远远超过(学习曲线)的成本。您只需编写少得多的代码,让您专注于业务。

        3
  •  3
  •   l_39217_l    16 年前

    +1春天+冬眠……

    10万用户不是中等规模的……这是巨大的。

    使用Spring,您可以强制编码人员编写接口代码,这增加了可测试性。这是我听不到人们谈论的好处。

    查看memcached到缓存数据 memcached

        4
  •  3
  •   webclimber    16 年前

    从技术上讲,我已经使用Spring、Hibernate和这两者部署了商业应用程序,其数量从数千到数十万不等。

    从管理的角度来看,在一个案例中,我有一个团队是优秀的技术人员,所以他们设法用Spring和Hibernate重写了一个应用程序,但是……他们疯狂地使用接口(模型的每个新对象需要16个接口),滥用AOP,因此事务和日志记录几乎不可能跟踪,堆栈跟踪毫无意义,使用工具来映射休眠文件,而不完全了解正在做什么(在某些情况下,加入4个表来获得可能是简单的实体和各种各样的问题,使得结果应用程序更难增强、调试、修复,甚至设置开发人员的环境……)

    我的2C

        5
  •  2
  •   Rahul    16 年前

    正如朱利安·查斯顿所说,如果这是你的第一个项目,你需要在你的评估中考虑学习曲线。我们第一次尝试时没能做到这一点,结果不得不调整很多计划,因为冬眠的几个方面很难(例如,花了一些时间)弄清楚。

    基于我们遇到的一个问题,我可以给出一个具体的建议:如果您需要编写复杂的SQL,而您不想花时间去弄清楚如何在HQL或Hibernate内的其他产品中使用这种查询,请先让它在普通的SQL中工作,然后再返回到Hibernate中修补它。

        6
  •  1
  •   Community CDub    8 年前

    显然,有一百万种方法来构建这样的应用程序,无论是在Java框架世界中,还是像Rails或Django这样的应用程序。

    对我来说,一个很大的卖点是,在Java世界中,无论是春天还是冬眠都已经成为事实上的标准,所以它们绝对有资格成为“你应该知道的事情”(我在每一次求职面试中都被问到)。春天比冬眠还要多。

    获取Spring的价值需要一些启用了Spring的应用程序,然后我才能理解它。它强制执行独立的代码模块和某种类型的组件设计,以便于测试。我建议你只需使用它,从使用中了解它的价值。

    我对Hibernate有着复杂的感觉,尽管使用某种DB层很重要,所以您也可以。

    也看到 this question.

        7
  •  1
  •   bpapa    16 年前

    在Hibernate的某些情况下,创建特定的对象到关系映射,或编写特定的HQL查询非常困难。但是,您将遇到10个中的1个问题,并且数据库越规范化,您的情况就越好。这是值得的。

    任何新的Java Web项目都应该使用Spring MVC(带有注释的2.5 +)和Hibernate。

        8
  •  1
  •   Martlark    16 年前

    冬眠和春天的开销有很大的理解。如果您有足够的时间或有经验的Java/Spring/Hibernate开发者,我会建议您使用它。一旦你开始了一个Spring项目,你基本上可以忽略它的Spring部分,集中精力在页面和逻辑设计上。冬眠并不难。HQL是一个更难的问题。我的大部分时间都花在bean和jsf级别上。将我项目的这一层与一些在JSP中乱搞的同事进行比较,我很高兴能够轻松地使用JSF。我很容易从MySQL的初始实现转换到Oracle,所以这证明Hibernate可以很好地处理抽象。

        9
  •  0
  •   Michael Pralow    16 年前

    除了目前所说的,我强烈建议这本书: Spring Recipes - Problem Solution Approach (Amazon) ,结合非常好的在线文档,您应该准备征服世界;-)