• 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经典案例:记录日志、性能监控、事务管理、权限控制
  • 相关阅读:
    [模板]大数加法
    HDU 1848 Fibonacci again and again
    同时安装了Python2和Python3时的pip使用
    UPC-2785 One-Way Roads(最大流建图)
    UPC-2784 Model Railroad(最小生成树)
    【ICPC 2017 Daejeon】UPC-9312 Game Map(dfs)
    【ICPC 2015 Shenyang】UVALive
    【ICPC 2015 Shenyang 】UPC-9254 MEETING(最短路&虚点建图)
    UPC-9264 Chip Factory(01字典树)
    【ICPC 2018 Malaysia】UPC-9302 ELI'S CURIOUS MIND(递推)
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/13636115.html
Copyright © 2020-2023  润新知