`
axiang_2898
  • 浏览: 89229 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring AOP

阅读更多
软件系统通常由多个组件构成,每个组件负责一个特定的功能领域。但是,这些组件也经常承担它们的核心功能之外的额外责任。系统服务(例如日志、事务管理和安全性)经常发现自己跑到了别的组件的领域里,而这些组件的核心职责是其他事情。结果就是所谓的“代码纠缠”,或者更简单点儿说“一团糟”。面向方面编程是一种试图解决这个问题的编程技术,它把关注点的隔离提升为核心的编程概念。

  使用 AOP 时,仍然是在一个地方定义系统的公共功能,但是可以声明性地定义 如何 和 在哪里 应用这个功能。如果对横切关注点(例如日志和事务管理)进行了模块化,那么不用修改每个单独的类,就可以向代码中添加新特性。这类模块化的关注点称作 方面。
 
  以一个企业应用程序为例。这类应用程序通常要求类似于安全性和事务支持的服务。显然,可以把这些服务的支持直接编写到要求服务的每个类当中,但是更希望能够不必为大量事务性上下文编写同样的事务处理代码。如果使用 Spring AOP 进行事务处理,那么可以声明性地安排适当的方法调用,而不必逐个安排。

  Spring AOP 提供了几个方面,可以为 JavaBean 声明事务。例如,TransactionProxyFactoryBean 是个方便的代理类,能够拦截对现有类的方法调用,并把事务上下文应用到事务 bean。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics