zoukankan      html  css  js  c++  java
  • SpringAop的简介

    什么是AOP?

    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,是通过运行期动态代理的技术,
    实现程序功能统一维护的一种技术。
    AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业
    务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时
    提高了程序开发的效率。write less do more。
    通俗的来说:它就是把我们程序重复的代码抽取出来,在需要的时候,利用动态代理,在不修改源码的
    情况下,对我们的已有方法进行功能的增强。这就相当于方法的拦截器。批量方法功能的动态增强。

    回顾OOP(面向对象编程)

    三大特征:封装、继承和多态
    比如说,有Dog类、Cat类、Horse类,它们都有eat方法,run方法,按照OOP的编程思想,那么
    我们可以抽象出父类Animal,在父类中放置相同的属性或者方法,这样来避免多子类中重复的代
    码。

    OOP是纵向抽取和继承体系,OOP很多场合都能够解决我们的问题【代码重复问题】,但是有一
    些场合,也有它处理不了的需要被解决的大量的代码重复问题。

     横切逻辑中

    • 横切逻辑往往在很多重复的代码
    • 横切逻辑重复代码和业务代码混杂在一起,让业务代码变得臃肿不堪。我们理想的状态应该是,业务代码只负责处理业务问题。
    • OOP已经不能抽取横切逻辑,解决不了横切逻辑重复代码的问题!所以,AOP横空出世,AOP独辟蹊径的提出了横向抽取机制,将业务逻辑和横切逻辑分离,但分离不是难事,难的是分离之后,怎
      么再把横切逻辑融合到原有业务逻辑中,达到和原来相同的效果呢?

     为什么叫面向切面编程?

    AOP要做增强的横切逻辑往往影响的不是一个方法,而是很多方法。影响了一大片方法,有一个“面”的
    概念在里面,所以起名叫做面向切面编程。

    AOP的作用、优势及实现方式

    • 作用:在程序运行期间,不修改源码,对已有方法进行增强。
    • 优势:减少重复代码,提高开发效率,方便维护【write less do more】
    • AOP的实现方式:使用动态代理技术,没有动态代理就没有AOP
    • AOP经典案例:记录日志、性能监控、事务管理、权限控制
  • 相关阅读:
    Representation Data in OpenCascade BRep
    Render OpenCascade Geometry Surfaces in OpenSceneGraph
    Render OpenCascade Geometry Curves in OpenSceneGraph
    OpenCascade Shape Representation in OpenSceneGraph
    Geometry Surface of OpenCascade BRep
    Geometry Curve of OpenCascade BRep
    Tyvj2017清北冬令营入学测试
    Spfa算法模板
    洛谷1016 旅行家的预算
    洛谷1290 欧几里得的游戏
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13636115.html
Copyright © 2011-2022 走看看