1.1面向切面的Spring编程(横切关注点——切面的由来)

194 阅读1分钟

首先各位小猿,想要了解面向切面编程,首先我们需要引入一个概念——横切关注点。
横切关注点即是影响各处的功能,即安全、事务、其他。

小猿整理的开发神器

image.png 下面我们分析一下这个图。

第一步,此图展现了什么?
    一个被划分为模块的典型应用。
第二步,需要了解每个模块的功能
    为特定业务领域提供服务。
第三步,提供服务需要什么?
    需要类似的辅助功能,例如安全和事务管理。
第四步,我们如何在不同的服务重用功能?
    通过继承和委托,但是继承和委托可能有如下缺点:
       继承:如果整个应用使用基类,可能导致脆弱的对象关系。
       委托:需要对委托对象进行复杂的调用。
 第五步,引进切面功能

image.png

切面

1.什么是切面?
  在一个地方定义功能,但是可以声明功能以何种方式在何种地方使用,无需影响修改的类。   
2.横切关注点?  
  横切关注点可以被模块化为特殊的类, 这些类被称为切面 (aspect) 。
3.横切关注点的好处  
  首先,现在每个关注点都集中于一个地方,而不是分散到多处代码中;
  其次,服务模块更简洁,因为它们只包含主要关注点 (或核心功能) 的代码,而次要关注点的代码被转移到切面中了。

image.png image.png