1、问题引入:
(1)系统中存在交叉业务,一个交叉业务就是要切入到系统中的一个方面,如下所示:
安全 事务 日志
StudentService ------|----------|------------|-------------
CourseService ------|----------|------------|-------------
MiscService -----|----------|------------|-------------
(2)用具体的程序代码描述交叉业务:
method1 method2 method3
{ { {
------------------------------------------------------切面
.... .... ......
------------------------------------------------------切面
} } }
2、AOP概念
(1)定义:交叉业务的编程问题即为面向方面的编程(Aspectoriented program ,简称AOP),AOP的目标就是要使交叉业务模块化。 (2)可以采用将切面代码移动到原始方法的周围,这与直接在方法中编写切面代码的运行效果是一样的,如下所示:
------------------------------------------------------切面
func1 func2 func3
{ { {
.... .... ....
} } }
------------------------------------------------------切面
总结:(1)使用代理技术正好可以解决这种交叉业务模块化的问题,代理是实现AOP功能的核心和关键技术。(2)安全,事务,日志等功能要贯穿到好多个模块中,所以,它们就是交叉业务。
|