轻量级开发的成功秘诀,第 2 部分: 如何减轻容器
2009-11-11 00:00:00 来源:WEB开发网面向方面编程
AOP 更进了一步。使用 AOP,您能够立即快速指定所有需要给定服务的方法,通常是使用正则表达式来做到这一点。AOP 程序员称这一套方法为切点(point cut)。例如,您可能想将将声明性事务与外观中的所有方法相关联。对于以 insert 或 update 单词开始的方法,您可能想要完整的事务传播,而对其他方法,您想要轻量级的只读传播。(EJB 规范定义了事务传播的类型。您只需知道,完整的事务传播的开销要大于只读传播,但是它也更加安全,并且对于某些类型的更新是必需的。)
在正确的位置得到正确的事务行为,无需修改调用者或目标方法中的任何代码。清单 4 展示了部分 Spring 上下文,它为这样的应用程序指定了切点。
清单 4. Spring 容器中指定切点的代码 <property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
参与者
您可以想像得到,许多人都在努力构建轻量级容器。轻量级容器空间围绕一些参与者,比如 Spring、Pico、HiveMind 和 EJB 技术,正迅速发展壮大。
Spring
处于领先地位的是 Spring Framework。Spring 使用 XML 配置并且依赖于 setter 进行依赖注入。它也使用构造函数和工厂方法,但您会看到的大多数示例和 Spring 代码基本身还是使用 setter。
Spring 通过使用胶水代码添加大量的 bean,从而超越了轻量级容器。使用 bean 和 代码,您可以插入数百种让您使用 J2EE API 的不同组件,从 JDO 到 Hibernate 的持久性引擎,工作流引擎,视图技术,等等。Spring 正在快速成熟,并将在可预见的未来成为一个参与者。
更多精彩
赞助商链接