技术开发 频道

Spring AOP: Spring之面向方面编程

Spring AOP设计能够很容易地扩展。虽然拦截实现的策略目前只在内部使用,但还是有可能支持拦截around通知, before通知,throws通知和after returning通知以外的任何通知类型。

org.springframework.aop.framework.adapter 包是一个支持添加新的定制通知类型而不修改核心框架的SPI(译:可能是API)包。定制通知类型的唯一限制是它必须实现 org.aopalliance.aop.Advice标记接口。

更多信息请参考org.springframework.aop.framework.adapter包的Javadoc。 

进一步的资料和资源
对于AOP的介绍,我推荐Ramnivas Laddad (Manning, 2003)写的AspectJ in Action。

进一步的Spring AOP的例子请参考Spring的示例应用:

JPetStore的缺省配置演示了使用TransactionProxyFactoryBean来定义声明式事务管理。

JPetStore的/attributes目录演示了属性驱动的声明式事务管理。

如果你对Spring AOP更多高级功能感兴趣,可以看一下测试套件。测试覆盖率超过90%,并且演示了本文档没有提到 的许多高级功能。

路标
Spring AOP,就象Spring的其它部分,是开发非常活跃的部分。核心API已经稳定了。象Spring的其它部分一样, AOP框架是非常模块化的,在保留基础设计的同时提供扩展。在Spring 1.1到1.2阶段有很多地方可能会有所提高,但是这 些地方也保留了向后兼容性。它们是:

性能的提高:AOP代理的创建由工厂通过策略接口处理。因此我们能够支持额外的AOP 代理类型而不影响用户代码或核心实现。对于Spring 1.1,我们正在检查AOP代理实现的所有字节码,万一不需要 运行时通知改变。这应该大大减少AOP框架的额外操作。但是注意,AOP框架的额外操作不是在普通使用中需要考虑 的内容。

更具表达力的切入点:Spring目前提供了一个具有表达力的切入点接口,但是我们 添加更多的切入点实现。我们正在考虑提供一个简单但具有强大表达式语言的实现。如果你希望贡献一个有用的 切入点实现,我们将非常欢迎。

引入方面这个高层概念,它包含多个advisor。

原文地址

0
相关文章