Spring核心思想之AOP总结

AOP在百度百科的解释意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

第一部分:什么是AOP

AOP: Aspect oriented Programming ?向切?编程/?向??编程
AOP是OOP(面向对象编程)的延续,从OOP说起
OOP三?特征:封装、继承和多态
oop是?种垂直继承体系

示例如下:我有3个类分别为Horse,Pig,Dog。3个类里面都有共同的方法,eat()和run(),那每个类里都有共同的代码,为了代码的重复,我们可以把这3个类里共有的部分提取出来,放到另外一个类里,3个类分别继承这个新类,这是这3个类的代码就减少了很多重复的代码,最后变成这样


OOP编程思想可以解决?多数的代码重复问题,但是有?些情况是处理不了的,?如下?的在顶级?类Animal中的多个?法中相同位置出现了重复代码,OOP就解决不了

横切逻辑代码

横切逻辑代码存在什么问题:

  1. 横切代码重复问题
  2. 横切逻辑代码和业务代码混杂在?起,代码臃肿,维护不?便

AOP出场,AOP独辟蹊径提出横向抽取机制,将横切逻辑代码和业务逻辑代码分析

代码拆分容易,那么如何在不改变原有业务逻辑的情况下,悄?声息的把横切逻辑代码应?到原有的业务逻辑中,达到和原来?样的效果,这个是?较难的

第二部分:AOP在解决什么问题

在不改变原有业务逻辑情况下,增强横切逻辑代码,根本上解耦合,避免横切逻辑代码重复

第三部分:为什么叫做?向切?编程

「切」:指的是横切逻辑,原有业务逻辑代码我们不能动,只能操作横切逻辑代码,所以?向横切逻辑
「?」:横切逻辑代码往往要影响的是很多个?法,每?个?法都如同?个点,多个点构成?,有?个?的概念在??

原文地址:https://blog.51cto.com/13225344/2468894

时间: 2024-10-10 21:58:05

Spring核心思想之AOP总结的相关文章

《Spring设计思想》AOP实现原理(基于JDK和基于CGLIB)

0.前言 在上篇文章<Spring设计思想>AOP设计基本原理中阐述了Spring AOP 的基本原理以及基本机制,本文将深入源码,详细阐述整个Spring AOP实现的整个过程. 读完本文,你将了解到: 1.Spring内部创建代理对象的过程 2.Spring AOP的核心---ProxyFactoryBean 3.基于JDK面向接口的动态代理JdkDynamicAopProxy生成代理对象 4.基于Cglib子类继承方式的动态代理CglibAopProxy生成代理对象 5.各种Advice

Spring学习笔记一(Spring核心思想)

通过学习<Spring in action (Third edition)>的第一章,我大概了解了Spring的基本思想: 1,依赖注入(Dependnecy Injection): 在不使用Spring框架的情况下,一个类要跟另一个类建立联系,可能会使用如下的模式: class A{...} class B{ private A a; ...       } 这样的话,每次实例化一个B的对象,如b1,必定实例化一个A的对象,如a1,并且b1和a1是紧耦合的,b1牢牢地和a1绑定在一起了.他们

Spring核心思想:IOC(控制反转)、DI(依赖注入)和AOP(面向切面编程)

Spring有三大核心思想,分别是控制反转(IOC,Inversion Of Controller),依赖注入(DI,Dependency Injection)和面向切面编程(AOP,Aspect Oriented Programming). 控制反转(IOC,Inversion Of Controller) 控制反转不是什么技术,而是一种设计思想.在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制. 传统正转 控制有反转,当然也就有原来的正转.正转就

Spring核心思想之IOC总结

说到Spring的核心思想Ioc和aop不是Spring提出来的,在Spring之前就已经存在,只不过更偏向理论化,Spring在技术层次把两个思想做了非常好的实现(java) 第一部分:什么是IOCIOC Inversion of Control (控制反转/反转控制),注意它是?个技术思想,不是?个技术实现描述的事情:Java开发领域对象的创建,管理的问题传统开发?式:?如类A依赖于类B,往往会在类A中new?个B的对象 IoC思想下开发?式:我们不???去new对象了,?是由IoC容器(S

《Spring设计思想》AOP设计基本原理

0.前言 Spring 提供了AOP(Aspect Oriented Programming) 的支持, 那么,什么是AOP呢?本文将通过一个另外一个角度来诠释AOP的概念,帮助你更好地理解和使用Spring AOP. 读完本文,你将了解到: 1.    Java程序执行在JVM中的特征 2.    Java程序的运行流[了解AOP.连接点(Join Point).切入点(point cut)   的概念 ] 3.    引入了代理模式的Java程序运行流(AOP实现的机制) 4.    Spr

Spring核心思想--六大模块介绍

Spring核心容器(Core Spring container) 容器是Spring框架最核心的部分,它管理着Spring应用中bean的创建.配置和管理.在该模块中,包括了Spring bean工厂,它为Spring提供了DI的功能.基于bean工厂,我们还会发现有多种Spring应用上下文的实现.还提供了许多企业服务. 所有的Spring模块都构建于核心容器之上. 面向切面编程(AOP) Spring对面向切面编程提供了丰富的支持.这个模块是Spring应用系统中开发切面的基础,与DI一样

Spring核心概念之AOP

一.AOP 的概念 AOP(Aspect Oriented Programming)的缩写,面向切面编程,主要作用就是对代码进行增强处理. 理解面向切面编程的含义:就是在不改变原有程序的基础上为代码增加新的功能. 实现面向切面编程需要了解两个概念: >切入点:可以插入增强处理的方法,比如原对象的fun()方法. >增强处理类型:在原对象fun()方法之前还是之后插入新功能. 二.Spring AOP简单应用 1.新建一个java项目 2.到官网下载Spring AOP和AspectJ框架所需要

Spring核心思想的简单实现

//准备工作 //================================================================================================================== package com.ys.service; import com.ys.model.User; /* * @作者 邓聪 * @Description:UserService * @Date 15:39  2017/9/27 */ public in

Spring核心学习-AOP(7) 织入和代理

前导:开始学习Spring核心思想,通过一个山寨精简版Spring代码结合学习. AdvisedSupport - 保存AOP配置 TargetSource - 保存被代理的数据 AopProxy - 对代理对象做代理,在调用目标方法前先调用它. JdkDynamicAopProxy - 使用JDK动态代理对接口做代理 ReflectiveMethodInvocation - 将反射的Method封装为Joinpoint MethodInterceptor - 对方法调用连接点实现包围通知的 A