快速业务通道

利用Spring框架改进J2EE编程 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
们处理所有难以处理的工作。相应代码如下所示:

<bean id="myBizServiceRef" class="org.springframework.ejb.access. LocalStatelessSessionProxyFactoryBean"> <property name="jndiName"> <value>myBizComponent</value> </property> <property name="businessInterface"> <value> yourco.project.biz.MyBizInterface </value> </property> </bean>

接下来可以检索bean并开始使用它,方法如下:

MyBizInterface myService = bf.getBean("myBizServiceRef");

这将返回Spring动态创建并包装了底层目标(在本例中是一个本地EJB实例)的一个对象。这种方法非常好,因为它完全隐藏了我们在处理EJB这一事实。我们将与一个实现简单业务接口的代理对象交互。Spring已经基于“真正的”业务对象考虑周到地动态生成了该对象。所包装的对象当然就是Spring定位和检索引用所要获得的本地EJB。此外,您还会注意到,这种代码形式与前面用于检索tempSensor对象的代码完全相同。

那么如果我们改变主意,想用普通Java对象来实现业务组件;或者可能在测试中,我们想用一个返回“固定(canned)”响应的已清除(stubbed)对象来替换重量级EJB,该怎么做呢?利用IoC和Spring,通过更改Spring上下文文件就可轻而易举地实现这些目标。我们只需使用更常规一点的东西(如我们在第一个Spring例子中所看到的)来替换EJB代理的连接即可:

<bean id="myBizServiceRef" class="yourco.project.biz.MyStubbedBizService"> </bean>

请注意,我只更改了Spring框架所返回的内容的细节,没有更改bean id。最后的结果是业务对象的解决方案未变;它看上去和以前完全一样:

MyBizInterface myService = bf.getBean("myBizServiceRef");

最大的区别显然是实现该业务接口的对象现在由一个普通Java对象(POJO)支持,并且只是该接口的一个已清除(stubbed)版本。这给单元测试或改变业务服务的特性带来了极大方便,而对客户端代码的影响很小。

利用Spring框架改进J2EE编程(4)

时间:2011-02-12 BEA Peter Braswell

使用Spring来标准化异常

Spring的一大贡献是“模板化”代码块。这在纯JDBC编程中表现得最为明显。我们都曾写过具有下述功能的代码:

◆创建一个数据库连接,可以的话从某个池创建。

◆构造一个查询字符串并提交。

◆迭代结果并将数据封送到域对象中。

◆处理不同阶段出现的大量异常。

◆确保记得编写finally代码块以关闭连接。

但是各处的这种代码往往都会或多或少地有点“样板化”。一般来说这是有害的,不仅因为不需要的代码会增加,还因为有些东西可能会遗漏,如非常重要的关闭连接,如果没有实现它,可能导致数据资源池的泄漏。

虽然我敢肯定我们都曾多次写过这类“样板”代码,但是将Spring方法和直接的JDBC实现对照来看,其结果将会有趣而又对比鲜明。“传统”的JDBC实现可能如下:

Connection con = null; try { String url = "jdbc://blah.blah.blah;"; con = myDataSource().getConnection(); Statement stmt = con.createStatement(); String query = "SELECT TYPE FROM SENSORS"; ResultSet rs = stmt.executeQuery(query); while(rs.next()){ String s = rs.getString("TYPE); logger.debug(s + "  " + n); } } catch(SQLException ex) { logger.error("SQL ERROR!",ex); } finally { con.close(); }

对于该方法要做一些说明。首先,它是有效的!该代码绝对

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号