Spring AOP原理详解以及实现AOP的实现方式

在介绍AOP之前,首先了解一下OOP(面向对象的编程),所谓“对象”就是再面向对象的语言中,一般是指类在内存中装载的实例,具有相关的成员变量和成员函数(方法),OOP的基本特征有四个“抽象”“封装”“继承”“多肽”(想深入了解的可看我之前的这篇介绍:OOP四个基本特征详解);
AOP即为面向切面的编程,可以说是OOP的扩展和延伸,OOP重点在开发者定义纵向的关系,却不适合定义横向的关系(比如日志功能,权限 等等),像这种散布在各处的无关的代码被称为横切,在OOP中,它导致的大量代码的重复,不利用各个模块的重用。但是AOP却很好的处理了这一块的关系。
AOP把软件系统分为两个部分:核心关注点横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事务。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。

例:

public void addMoreDBConfig(){

    if(logger.isDebugEnabled()) logger.debug("moreDB:"+moreDB+",set slave ...");

    if(moreDB)
        DataSourceHolder.setDataSource("slave");
}

public void clearMoreDBConfig(){

    if(logger.isDebugEnabled())  logger.debug("clearDataSource...");

    DataSourceHolder.clearDataSource();
}

比如这两个方法有横切关注点logger,他的AOP配置则是:

《Spring AOP原理详解以及实现AOP的实现方式》

    原文作者:AOP
    原文地址: https://blog.csdn.net/qq_19167629/article/details/80476020
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞