内容摘要:本文粗略地概括介绍了IoC,并详细介绍了Spring。Spring框架具有许多功能,其中许多功能在本文中只是点到为止。从基本的依赖注入到复杂的AOP操作,这些组成了Spring的强大功能,这是它的主要优点之一。能够根据问题需要使用或多或少的IoC功能是一个极具吸引力的理念。
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来标准化异常
Spring的一大贡献是“模板化”代码块。这在纯JDBC编程中表现得最为明显。我们都曾写过具有下述功能的代码:
来源:BEA 作者:Peter Braswell 责编:豆豆技术应用
- Java新闻
- Java入门教程
- Java开发工具
- J2EE
- J2SE
- J2ME
- EJB/Spring
- Applet/Swing
- Servlet/JSP
- Struts/Hibernate
- JDBC/JDO
- Ajax
- 认证考试
- JAVA对象比较器Comparator
- Java 6 RowSet 使用完全剖析
- 深入了解"Java"中的“异常机制”
- 讨论5种跟踪Java执行的方法
- Java专业术语标准化规范
- java中线程概念描述
- JAVA中的反射机制详解
- Java语言灵巧指针与垃圾回收
- 讲述java语言中内部类的研究
- Java对于Cookie的操作详解