标签:重用 生成 container 函数 基本 事务 ref 集合 nts
本文讲述sprint的第二个基本概念: AOP,即面向方面编程
软件项目中,日志系统等服务系统被核心功能系统调用,日志系统的代码分散在各处。面向方面编程将日志等服务系统独立出来,作为单独一个模块,形成一个“方面”。然后通过一些手段将日志与核心代码再联系起来,叫做“织入”。由此将原来混杂在一起的代码分离成单独的模块,代码质量提高,模块内聚性更高,核心模块专注于处理核心业务流程,而不需要关注不相关的东西,如记录日志、考虑安全等因素。
通过面向方面编程,模块可以更加独立。只要不是本模块需要做的事情,都可以抽取成为一个“方面”,形成一个新的类。
几个核心概念:
以上例子中,日志系统就是一个切面,切面中的某个函数是通知,并且可以通过配置指定在“何时”,并且将核心系统中的哪个类的哪个方法作为切点,这个通知被触发。
Sprint只支持在普通函数被调用时的AOP,不支持成员变量被修改时、或构造函数被调用时的AOP。因为Spring实现AOP的方式是通过动态的为核心系统类生成一个代理对象来实现的。但这可覆盖大多数的需求。
待补充。
在设计一个类时,考虑某个功能时,问一个问题:这个功能是不是必须要我来做,或者由我来做是否合理。如果不是,则都可以将这个功能抽取出来作为一个切面。
当需要为一个类增加功能时。
当要修改一个类的功能时。
Spring使用 --- 基本概念(二):AOP,面向方面编程
标签:重用 生成 container 函数 基本 事务 ref 集合 nts
原文地址:http://www.cnblogs.com/astropeak/p/6422189.html