Spring学习-16:AOP的概述

面试官:谈谈你对IOC和AOP的理解及AOP四种实现方式 IOC控制反转(IOC)是一种设计思想,就是将原本在程序中需要手动创建对象,现在交由Spring管理创建。举个例子,原本我们要在A类中调用B类的方法,就要直接在A中new出B类对象,然后调用B类中的方法,虽然能实现效果,不过存在一个问题,更改需求会对源代码进行修改,这是大忌。现在创建B对象就交给了Spring,在Spring中,B类对象被看成Bean对象(Spring中类就是Bean),这个Bean对象由spring容器进行创建和管理,当我们在配置文件中配置下的AOP。... 阅读详情

1.1   AOP的概述:

1.1.1   什么是AOP:

 AOP Aspect Oriented Programing 面向切面编程

 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)

 Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码

 AspecJ是一个基于Java语言的AOP框架,Spring2.0开始,Spring AOP引入对Aspect的支持,AspectJ扩展了Java语言,提供了一个专门的编译器,在编译时提供横向代码的织入


1.1.2   AOP底层原理;

就是代理机制:

* 动态代理:(JDK中使用)

* JDK的动态代理,对实现了接口的类生成代理.

1.1.3   Spring的AOP代理:

JDK动态代理:对实现了接口的类生成代理

CGLib代理机制:对类生成代理

1.1.4   AOP的术语:

Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点.

Pointcut(切入点):所谓切入点是指我们要对哪些Joinpoint进行拦截的定义.

Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)

Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field.

Target(目标对象):代理的目标对象

Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程.

spring采用动态代理织入,而AspectJ采用编译期织入和类装在期织入

Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类

Aspect(切面): 是切入点和通知(引介)的结合


Spring:AOP Spring AOP介绍 阅读详情

相关推荐

ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟的关键技术解析

本文深入解析了ABAQUS中CDP模型在钢筋混凝土节点低周反复荷载模拟中的关键技术。通过详细介绍CDP模型的核心价值、建模关键技术、滞回曲线优化方法及典型问题排查指南,帮助工程师精准模拟混凝土的拉伸开裂和压缩压碎行为,提升抗震分析效率。文章还提供了实用的工程应用技巧,如快速建模模板和后处理自动化脚本。

weixin_30555125的博客 525

AOP-纵向横向的区分和基本概念

切点,横向,纵向,切面 , advice

lambda-fk 的专栏 7419

安装oracle 19c 报错INS-06006 INS-44000 INS-32070

数据库版本oracle 19c 操作系统版本:centos7.8 安装oracle19c RAC 配置互信的时候setup显示成功,点test的时候报错INS-44000,继续点yes 报错INS-32070,继续往下点 报错INS-06006 处理过程 1.手动ssh node date 全部成功说明互信时没有问题的 2.查mos 文档ID 2555697.1 如果OpenSSH升级到8.x会有这个问题 MOS上的解决办法 #ssh -V OpenSSH_8.0p1, OpenSSL 1.0.2r 2

cqszpx的博客 1528

Spring AOP之代理机制

很早就听说spring aop,一直没有静下来学习,今天看了下《精通spring》,将我理解的spring aop做下笔记。当然,首先还是什么是AOP呢?AOP(Aspect Oriented Programming)面向方面编程,但对于spring来说理解为“面向方面编程”更确切。那么又是为什么要用AOP呢?大家都知道OOP(Oriented Object Programming)面向对象编程,

我行我能 702

【Web实战】微信小程序逆向

2E 70 6E 67”为带存放路径的文件名称,“00 00 11 7C”对应文件在小程序包中的具体偏移位置,“00 01 01 F7“对应文件在小程序包中的数据长度。但这并不是最初的原项目文件结构,原因是微信服务器会将小程序源码中所有的“js”文件压入“app-service.js”文件中,将所有的“json”文件压入“app-config.json”中,将所有的“wxml”文件压入“page-frame.html”文件中,“wxss”则在处理之后以“html”文件的形式存留在对应页面目录之下。

若有战,召必回 1947

从工创赛实战到开源:一个高鲁棒性智能物流视觉系统的构建与优化

本文分享了从工创赛实战中构建高鲁棒性智能物流视觉系统的完整经验。针对赛场复杂光线环境,详细阐述了摄像头选型、基于CLAHE和形态学梯度的抗干扰色环识别算法、卡尔曼滤波状态估计以及多线程串口通讯与任务调度等核心优化策略,旨在打造一个稳定可靠的视觉系统,并已将相关代码开源。

weixin_29046035的博客 320

spring中的AOP编程思想详解

一.AOP编程思想介绍 1.servlet的AOP体现: AOP意思就是面向切面编程,可以用一句话概况AOP编程思想,即横向重复,纵向抽取。我们知道,软件工程一个基本原则就是代码复用,为了实现这个目标,我们可以用类,用方法,同样,AOP也是代码复用的一种方式。我们现在用下面这样一种例子来具体解释什么叫做面向切面编程。熟悉 java web的朋友可能清楚,我们在编写servlet需要解决一系列的

wonabi的博客 7304

Odoo 入门 | 什么是 Odoo?

Odoo是一套全球开源的ERP/CRM系统,最初的名字为TinyERP,08年5月之后称之为OpenERP,之后又改为Odoo。

洛阳泰山的博客 6208

Spring AOP 知识点 & 实现机制

Spring   AOP 一、关于AOP 1. 什么是 AOP? Aspect Orentied Programming:面向切面编程 Object Orentied Programming:面向对象编程 AOP 编程是以 OOP  为基础,OOP 侧重点是对象抽象和封装,AOP 侧重点时共通处理部分的封装和使用,用于改善共通组件。是对 OOP 的补充和完善 2.

followMyInclinations的专栏 3562

【AI就业干货12】机器学习八股文速通:从损失函数到 XGBoost,一篇带走全部面试点

本文总结了机器学习面试的核心知识点,涵盖监督与非监督学习、线性模型、正则化、决策树、KNN/K-means、SVM、集成学习、梯度下降、评估指标、特征工程、降维、概率模型等内容。重点包括:损失函数选择(MSE/交叉熵)、正则化作用(L1稀疏/L2平滑)、决策树划分准则、集成学习方法(Bagging降方差/Boosting降偏差)、XGBoost优化等。提供了30秒速记口诀和XGBoost代码示例,帮助快速掌握面试要点。全文采用公式+代码+口诀的形式,系统梳理了机器学习从理论到实践的常见考点。

m0_51738372的博客 731

Python爬虫实战:全面采集国家自然科学基金项目数据的全流程指南

国家自然科学基金委员会(NSFC)支持基础研究、应用基础研究,是我国科研投入的核心项目之一。公开的项目数据包括项目名称、负责人、资助金额、年度、单位等,具备极高科研和数据分析价值。requests:基础HTTP请求库,简单直观:异步HTTP请求库,适合大规模并发:HTML解析,提取数据:处理JavaScript渲染网页pandas:数据分析与清洗:数据库存储:重试机制实现。

2201_76125261的博客 753

Spring框架学习第四讲(AOP原理——XML实现)

一、AOP原理1.1 AOP概念 AOP:面向切面(方面)编程,扩展功能时,不需要修改源代码,只需要修改配置文件就可以了; AOP:采取横向抽取机制,取代了传统的纵向继承体系重复性代码; 1.2 AOP原理发展过程 纵向抽取机制原理 2. 横向抽取机制:使用动态代理方式实现1.3 AOP操作术语 连接点(join point):类里面哪些方法可以增强,这些方法就称为连接点; 切入点(pointc

仰望星空 1001

verilog实现步进电机脉冲分配器(三相六拍)基于Nexys4DDR开发板

使用Verilog HDL设计的一个能够自启动、具有正反转功能的三相六拍步进电机脉冲分配器。已经写好Nexy4DDR的管脚约束文件 可以通过Nexys4DDR开发板的PMOD接口连接步进电机进行调试。 使用verilog语言 在vivado2018.2下运行编译下载都正确,(也可在ISE,QuartusII下使用)下面是工程截图: ...

QQ_778132974的博客 2593

SpringFramework概述,先认识一下SpringFramework

目录 1、Spring的官网 2、正式介绍SpringFramework 1、Spring的官网 我本人一直都认为,学任何东西都应该尽量的从根上开始学起;Spring作为一个目前而言JAVA后端很流行的一个开源框架,它是有官网的,下面是它的官网地址(可以直接在百度上搜 Spring官网就可以): Spring | Homehttps://spring.io/打开的会慢一点,下面就是它的官网的界面: 其实我们还是尽量看英文吧,看的习惯了其实觉得就好了,就像使用IDEA一样,起初总想做个

weixin_46281472的博客 2546

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Spring AOP源码学习:创建 AOP 代理

目录 前言 AnnotationAwareAspectJAutoProxyCreator AbstractAutoProxyCreator#postProcessAfterInitialization 代码块1:wrapIfNecessary 代码块2:getAdvicesAndAdvisorsForBean 代码块3:findEligibleAdvisors 代码块4:findAdvisorBeans 代码块5:findCandidateAdvisors 代码块6:buildAspect

程序员囧辉 5203

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

16-Spring 基于注解的AOP编程、AOP总结

上一篇:15-Spring AOP的底层实现原理JDKProxy&CGLIB https://blog.youkuaiyun.com/fsjwin/article/details/109481104 前面我们介绍的aop编程完全可以满足项目的需要,但是有没有更为简便的方式呢? 当然有了,就是aspectJ为我们提供的大餐,使用注解的aop编程 下面就开启我们的大仓之旅 值得注意的是不管是aop的注解编程,还是在xml中就行配置,他们的主要矛盾是一样的,矛盾的主要方面也是一样的。即 目标对象 增强功能 切入点

前路无畏的博客 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring AOP 概述

1. AOP的概念 AOP 是Aspect-Oriented Programming(面向方面编程或者面向切面)的简称,维基百科对其解释如下:   Aspect是一种新的模块化机制,用来描述分散在对象、类或者函数中的横切关注点。从关注点分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不再含有针对特定领域问题代码的...

dianchi3205的博客 168

Spring注解驱动开发学习总结16:AOP原理 - AOP通知方法执行的步骤

Spring注解驱动开发学习总结16:AOP原理 - AOP通知方法执行的步骤1、方法栈调用分析1.1 分析AOP通知方法的调用步骤2、小结 回顾下前4篇AOP原理分析的内容: 1、Spring注解驱动开发学习总结12:AOP原理 - @EnableAspectJAutoProxy注解作用分析 分析了配置类上添加@EnableAspectJAutoProxy注解,最终会给容器中注册了一个id为internalAutoProxyCreator,类型为AnnotationAwareAspectJAutoProx

xueping_wu的博客 1062

Spring Aop初始化源码分析

1 工程简介 1.1 pom <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.tar

qq_34125999的博客 4613

Spring AOP源码总结

1、Spring创建bean的过程中,会在bean后置处理器的bean初始后方法中判断当前类是否需要进行AOP(产生代理对象)2、Spring从容器中找到所有的Advisor(包括切面类中的@Before、@After等注解修饰的方法也会构建成Advisor)3、获取所有匹配的Advisor调用Advisor.Pointcut.MethodMatcher的match方法,只要方法匹配器(MethodMatcher)与当前类(正在创建的bean)的任意一个方法匹配即可。

qq_34101321的博客 1850

SSH与SSM学习之Spring16——Spring中AOP之使用配置文件配置

SSH与SSM学习之Spring16Spring中AOP之使用配置文件配置 一说明 二导包 三创建目标类 1 UserService 接口 2 UserServiceImpl 目标类 四MyAdvice 通知类 五applicationContextxml 配置文件 六AopXmlTest 测试 七源码下载 SSH与SSM学习之Spring16——Spring中AOP之使用配置文件配置一、说明Spr

qiwenmingshiwo的专栏 1648

Java-24 深入浅出 Spring 全景:从起源到 Spring 6 一文打通 IoC / AOP / 发展史

Spring 是面向 Java 平台的分层 Full-Stack 轻量级开源框架,以控制反转(IoC)和面向切面编程(AOP)为核心理念,简化企业级应用开发。本文系统讲解 Spring 的发展历程:2003 年 Rod Johnson 推出雏形,2004 年 3 月发布 1.0 正式版,2006 年 Spring 2.0 引入 XML Schema 命名空间,2009 年 12 月 Spring 3.0 基于 Java 5 并引入 SpEL,2013 年 12 月 Spring 4.0 全面支持 Java

谢谢你的喜欢 我们一起无限进步 5188

16、spring AOP通知——Advice

16、spring AOP通知——Advice**说明:**spring AOP是一个面向切面的编程框架,也就是拦截器的一个集合,可以劫持一些方法,并在这些方法执行前,执行后或者围绕其他动作进行一些处理或添加以下新功能主要有以下四种通知方式: Advice之前——在方法执行前运行 Advice之后——在方法执行后运行 Advice抛出异常之后——在方法抛出异常之后运行 环绕通知——综合运用上述三种方

证件同学的博客 707

Spring学习AOP

Spring学习 AOP学习 aop的概念 AOP底层原理(动态代理) 代理模式: 代理模式分类: 静态代理 动态代理 静态代理: 角色分析: 抽象角色:一般会使用接口或者抽象类进行解决 真实角色:被代理的角色 代理角色:代理真实角色,代理真实角色后,一般会做一些复数操作 客户 : 使用代理角色来进行一些操作 . 静态代理的好处: 可以使得我们的真实角色更加纯粹 . 不再去关注一些公共的事情 . 公共的业务由代理来完成 . 实现了业务的分工 , 公共业务发生扩展时变得更加集中和方便 . 缺点

weixin_49726760的博客 153

Spring源码系列: AOP实现

Spring源码系列: AOP实现前言一. AOP的使用二. AOP的实现2.1 创建AnnotationAwareAspectJAutoProxyCreator2.1.1 注册或升级AnnotationAwareAspectJAutoProxyCreator2.1.2 处理 proxy-target-class 以及 expose-proxy 属性2.2 AnnotationAwareAspectJAutoProxyCreator的作用2.3 获取增强器2.3.1 获取增强器findCandidateAd

Zong_0915的博客 2007

Spring学习笔记 AOP

AOP,也就是面向方面编程或者说面向面编程,是一种很重要的思想。在企业级系统中经常需要打印日志、事务管理这样针对某一方面的需求,但是传统的面向对象编程无法很好的满足这些需求。因此催生了面向切面编程这样的思想。面向切面编程,通过动态代理这样的功能,向要执行的方法添加钩子,能够在不改动原方法的情况下,动态添加新功能。所以在现代系统中算是一项必需的功能了。Spring框架也很好的支持了AOP。AOP的几个

乐百川 724
上一篇: Spring学习-15:Spring整合Junit
下一篇: Spring学习-17:AOP底层原理
Yes_JiangShuai
博客等级 码龄10年 149粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值