快速业务通道

使用Spring框架轻松解决数据访问和配置问题 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
meOfSandwich" value="Cream Cheese and Jelly" /> </bean> </beans>

好,让我们更仔细地观察它一下,从底部开始。我们已告知环境,实例化 com.sandwich.SandwichMaker 类时,sandwichFiller 属性应由标识为 ccandjFiller 的 bean 来填充。该 bean 是一个 com.sandwiches.CreamCheesAndJellyFiller,有着自己的属性。它的 sandwichType 为 bagel,后者将 breadPreference 设置为 bagel(而不是 rye 或 bialy),并且其宽度为 5 英寸。另外,我们希望奶酪比葡萄果冻稍微多一点。

现在看来,这里有着太多的自定义工作;如果您想将那些项都编写到应用程序中去,则要在程序更改时进行大量的重编译工作,或在选项中进行大量的构建工作以做出所有那些选择。Spring 通过只更改 XML 文件而使我们能更轻松地做出更改。在此我选择了一个比较简单的示例,但可以想像一下,您正在配置数据源,这个 IoC 立即变得至关重要。

使用Spring框架轻松解决数据访问和配置问题(2)

时间:2011-03-23 Nicholas Chase

数据库的优点

提到数据源,Jeff 解释说这是另一个领域,其中 “Spring 拥有扩展了很多 J2EE(和非 J2EE)组件的优秀 API”,使开发人员更加轻松。

“在 Spring 中创建数据访问对象相对较为简单”,他解释说。“使用 JDBC(或其他框架,如 Hibernate)扩展几个 Spring 类,实现 DAO,然后在 applicationContext.xml 文件中做出声明。此后可通过声明的方式将这些 DAO 注入业务对象,方法是为 DAO 设定一个 setter 方法并在 Spring XML 文件中声明业务对象。”

从交谈中,我学到了如此之多的 IoC 相关知识。但不止于此:“这样做,您就可以摆脱捕获 SQLExceptions 的要求,并使【对数据库的】测试与交换声明一样简单。”

我明白后半部分;数据库是一个可在 applicationContext.xml 文件中轻松设置的属性。但它是如何使您摆脱捕获 SQLExceptions 的要求的呢?

“Spring 将 SQLExceptions 等转换为未检查异常,从而隐藏了 JDBC SQL 问题。这随后又清除了错误,从而使问题一目了然。这是处理数据库异常的一种更好的方法。”

大致说来,创建 JDBC 应用程序时,如果出现问题,您将得到 SQLException。遗憾的是,该 SQLException 往往不会包含实际查找出问题所在而必需的全部信息,因为实际信息被编码为特定于供应商的错误码,您必须对其进行跟踪。当然,由于此处设计思想的一部分是可轻松地 更改数据源,因此将智能编码到应用程序中是不可接受的。但是,通过将数据库交互包装到 Spring 类中,如 JdbcTemplate,可确保将所有错误表达为 DataAccessException,或更重要地,表达为 DataAccessException 的十余个子类之一,包括 DataAccessResourceFailureException、DataIntegrityViolationException 和 OptimisticLockingFailureException 等。这样您就可以更灵活地编写应用程序。

隐藏类防止冲突

至此,我们已经介绍了大量关于 Spring 的信息,但关于 Geronimo 呢?团队是否要做什么特殊的工作才能将其集成到应用服务器中?

“我记得 Bruce Snyder 和 Aaron Mulder 为其 Apachecon 2006 插件演示编写了 Spring 插件,但除那之外,Spring 实际上是一个 API,因此对于 Spring,将其放入存储库中,它就可供所有程序使用。”

换句话说,无需执行任何特殊操作;只要 Spring 位于存储库中,那么它就是可用的。

一切并没有结束。Jeff 继续说道,“对于其他应用服务器,人们最大的抱怨就是:需要将 Spring 放在服务器的类路径中,而此时也将其包含在了 Web 应用程序中”—— 如果应用程序使用的 Spring 和服务器安装的 Sp

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号