Posted on 2006-02-15 22:51
云自无心水自闲 阅读(278)
评论(0) 编辑 收藏 所属分类:
Java
Spring这个三角形一共有三条边
第一条边: IoC
第二条边: AOP
这两条边不需要多说了.
那么第三条边是什么呢:
3. Service Abstraction
Spring使用service abstraction而不依赖于标准J2ee的API(比如: JNDI)或者其他的开源项目(比如Hibernate), 原因如下:
1. 是否依赖于特定的API取决于API的本身而不是起源(原文:
Whether it's desirable to depend on a particular API depends more on the nature of that API than its provenance). 比如: 如果依赖于一个特定的API导致单元测试困难的话, 就应该进行抽象封装. 典型的例子就是: JavaMail.
2. 依赖于Spring, 可以把依赖关系控制在一个比较小的范围之内, 只与一系列接口相关. 这种依赖简单而明确.
3. Spring的抽象接口适用范围广. 而如果你绑定了JTA, 那么你如果使用的是Tomcat的话, 就还需要加一个JTA的第三方实现.
4. Spring的API是面向程序开发员的, 而不是藏在幕后的. 比如JTA就是藏在EJB之后,因此JTA的异常处理就非常麻烦.
正是这三条边组成了一个稳定的Spring三角形.