AOP思想

来源:互联网 发布:mysql 主键从0开始 编辑:程序博客网 时间:2024/06/07 06:40
l系统中存在交叉业务,一个交叉业务就是要切入到系统中的一个方面,如下所示

      下面的方法都有要处理安全,事务,日志的代码,相当于一个面切入到了这些方法:

                              安全       事务         日志

StudentService  ------|----------|------------|-------------

CourseService   ------|----------|------------|-------------

MiscService      ------|----------|------------|-------------


l用具体的程序代码描述交叉业务:

method1         method2          method3

{                      {                       {

------------------------------------------------------切面(安全,事务,日志代码)

//业务逻辑代码  //业务逻辑代码  //业务逻辑代码

  ....                          ....                                  ......

------------------------------------------------------切面

}                       }                       }



l交叉业务的编程问题即为面向方面的编程(Aspect oriented program ,简称AOP),
AOP的目标就是要使交叉业务模块化。可以采用将切面代码移动到原始方法的周围,
这与直接在方法中编写切面代码的运行效果是一样的,如下所示:

------------------------------------------------------切面

func1         func2            func3

{             {                {

....            ....              ......

}             }                }

------------------------------------------------------切面


使用代理技术正好可以解决这种问题,代理是实现AOP功能的核心和关键技术。
0 0
原创粉丝点击