Spring如何适应我的应用程序架构?

时间:2010-07-07 04:16:42

标签: java hibernate spring web-applications wicket

我目前正在使用Java重建现有的PHP应用程序。因此,我有一个现有的前端GUI和我正在使用的现有数据库模式。

这是我正在努力的技术堆栈:

  1. jQuery,客户端
  2. Wicket,前端
  3. 春天, ???
  4. Hibernate, ORM
  5. MySQL,数据库
  6. Wicket In Action 和Hibernate文档中阅读Spring之前,我设想通过我自己的业务逻辑将两者连接在一起。我有JBoss Seam的经验,但我被告知Spring很难比较(尽管文档另有说明,IMO)。如果没有在我的阅读清单上添加一本关于春天的书(我还没有找到一个有良好评价的合适的书),我不知所措。

    Spring会在此技术堆栈中提供哪些好处?

    主观&可选的后续问题:什么参考资料(书籍,网站等)将让我开始使用我可能使用的Spring 3部分?

4 个答案:

答案 0 :(得分:2)

春天,如this review所述是非侵入性的。它只是连接您的应用程序组件。并提供了有用的类,使其他框架更容易使用(JMS,JPA等)。 Spring不会强迫您在任何地方使用它的类或接口。

它处理的是组件(对象)的创建,因此您可以引用类的依赖关系,而无需实例化它们。即你说你的课程需要什么,而不是 它是如何获得它的。这使得应用程序非常灵活。

简而言之 - 请阅读链接文章。这不是关于最新版本,但这无关紧要。

答案 1 :(得分:2)

除了依赖注入之外,Spring还提供了声明式事务管理,与ORM的简单集成,面向方面的编程支持以及许多其他好处等功能。

有关文档,请参阅Spring参考:http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html

答案 2 :(得分:2)

首先,您可以在没有Spring的情况下创建Web应用程序。但Spring会极大地促进事情发展。 Spring框架是一种轻量级,非侵入式的。春天就像一种指挥。 Spring帮助您解决的其他问题包括:

  1. 保持物体松散耦合。这将使您的应用程序更加灵活,并对未来的变化持开放态度

  2. 通过AOP(面向方面​​编程)为交易提供强大支持。

  3. 对象关系映射(ORM)集成模块。 Spring并没有尝试实现自己的ORM解决方案,而是提供了几个流行的ORM框架的钩子,包括Hibernate,Java Persistence API,Java Data Objects和iBATIS SQL Maps。 Spring的事务管理支持每个ORM框架以及JDBC。

  4. Spring MVC框架。尽管Spring集成了几个流行的MVC框架,但它还附带了自己非常强大的MVC框架,可以在应用程序的Web层中推广Spring的松散耦合技术。

  5. 关于Spring:Pro Spring的好书

答案 3 :(得分:2)

@Dolph,在最简单的术语中,将Spring视为最高程度的应用程序框架。这个“框架”提供了几个“组件桶”,您可以轻松插入不同类型的实现。例如,对于ORM,您可以选择在JPA或TopLink上使用Hibernate,对于前端,您可以选择Wicket而不是Struts或SpringMVC,等等。

这一切的美丽(除了其他帖子中陈述的所有好东西)是它允许您在将来轻松地轻松更换任何这些实现​​。因此,你可以在一天内彻底淘汰Hibernate并替换为TopLink,它永远不会对其他组件造成连锁反应。

使用Spring的另一个好处是你的代码变得不那么杂乱,并且与其他类的松散依赖性因为你花费更少的时间自己创建新对象,Spring会为你处理。也就是说,您将很快意识到测试代码是多么容易,因为要测试的API变得非常原子。这是人们在编写测试用例时气馁的一个主要原因,因为他们很快意识到,为了让他们测试一个API,他们必须构建很多东西才能测试它。因此,整个过程都很脆弱,想象一下如果你改变那个API,你需要在重新测试之前重建所有内容。

Pro Spring书很好,@ JLBarros提到。我非常喜欢Spring in Action。当我第一次使用Spring时,它非常容易阅读。这可能是我从皮肤到皮肤阅读的一本参考书。