我目前正在使用Java重建现有的PHP应用程序。因此,我有一个现有的前端GUI和我正在使用的现有数据库模式。
这是我正在努力的技术堆栈:
在 Wicket In Action 和Hibernate文档中阅读Spring之前,我设想通过我自己的业务逻辑将两者连接在一起。我有JBoss Seam的经验,但我被告知Spring很难比较(尽管文档另有说明,IMO)。如果没有在我的阅读清单上添加一本关于春天的书(我还没有找到一个有良好评价的合适的书),我不知所措。
Spring会在此技术堆栈中提供哪些好处?
主观&可选的后续问题:什么参考资料(书籍,网站等)将让我开始使用我可能使用的Spring 3部分?
答案 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帮助您解决的其他问题包括:
保持物体松散耦合。这将使您的应用程序更加灵活,并对未来的变化持开放态度
通过AOP(面向方面编程)为交易提供强大支持。
对象关系映射(ORM)集成模块。 Spring并没有尝试实现自己的ORM解决方案,而是提供了几个流行的ORM框架的钩子,包括Hibernate,Java Persistence API,Java Data Objects和iBATIS SQL Maps。 Spring的事务管理支持每个ORM框架以及JDBC。
Spring MVC框架。尽管Spring集成了几个流行的MVC框架,但它还附带了自己非常强大的MVC框架,可以在应用程序的Web层中推广Spring的松散耦合技术。
关于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时,它非常容易阅读。这可能是我从皮肤到皮肤阅读的一本参考书。