zoukankan      html  css  js  c++  java
  • spring面向切面编程理解

    有点理论性但是看完这章之后真的觉得可以宏观理解AOP到底是啥

    面向切面编程(AOP,aspect-oriented programming)
    定义:促使软件系统实现关注点的分离一项技术。系统是由许多组件组成,每个组件各负责一块特定功能,还有可能承担日志,事务管理和安全等系统服务中去,这些系统服务称为横切关注点,因为它可以跨越系统的多个组件。
    将这些关注点分散到多个组件中,会带来一些问题:

    • 实现系统关注点功能的代码将会重复出现在多个组件中。这意味着如果你要改变这些关注点的逻辑,必须修改各个模块中的相关实现。即使你把这些关注点抽象为一个独立的模块,其他模块只是调用它的方法,但方法的调用还是会重复出现在各个模块中。
    • 组件会因为那些与自身核心业务无关的代码而变得混乱。一个业务的方法应该只关注业务本身,而不应该关注它 是不是安全的或者是否需要支持事务。

    左边的业务对象与系统级服务结合得过于紧密。每个对象不但要知道它需要记日志、进行安全控制和参与事务,还 要亲自执行这些服务。

    在这里插入图片描述

    AOP能使这些系统服务模块化,并且用声明的方式来把他们应用到需要的组件中,这样使组件具有更高的内聚性更加关注自身的业务,而不需要了解系统服务的所带来的复杂性,AOP保持了POJO的简洁性。

    我们可以把切面想象为覆盖在很多组件之上的一个外壳。应用是由那些实现各自业务功能的模块组成的。借助AOP,可以使用 各种功能层去包裹核心业务层。这些层以声明的方式灵活地应用到系统中,你的核心应用甚至根本不知道它们的存在。这是一个非常强大的理 念,可以将安全、事务和日志关注点与核心业务逻辑相分离。
    在这里插入图片描述


    本文参考资料:《spring实战(第四版)》

  • 相关阅读:
    [文摘20070723]最经典的爱情观
    [转]ASP .Net C# 下 Word开发资料
    [引]如何藉由使用 Visual C# . NET 處理 Word 中的事件
    简单的搭建Web系统常用的框架页面
    Gentle 简单配置方法之一种
    在 可编辑的 Div 的 光标位置 插入 文字 或 HTML
    [转]使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
    VS2005 添加 Microsoft.Office.Tools.Word.dll 等引用
    要事第一 事不过三
    VC slider用法
  • 原文地址:https://www.cnblogs.com/narojay/p/10812612.html
Copyright © 2011-2022 走看看