Spring面试题--AOP

什么是AOP,你们项目中有没有使用到AOP?

AOP称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。

而AOP的底层用的就是动态代理

常见的AOP使用场景:

记录操作日志

因为日志属于公共行为,比如我们的每一个service,可能都需要去记录这个日志,但是我们不可能在每一个service中都去编写这个操作日志的逻辑

比如当前有一个要求,就是记录每一次获取请求的用户名、请求方式、访问地址、模块名称、登录ip、操作时间,记录到数据库的日志表中

 当有了如上图的多个操作的时候,我们就需要记录日志了,我们以新增用户为例。我们可以用环绕通知在这里做一个切面。众所周知,切面就相当于一个通用的代码,在各个请求执行的时候,都会去执行这段代码

AOP其实就是把一些公共的代码抽了出来,并且把这个公共的东西抽成一个切面类,在切面类中做增强,而不让业务代码进行耦合

缓存处理

我们可以通过拦截所需要添加缓存的业务方法

Spring中内置的事务处理

Spring支持编程式事务管理声明式事务管理两种方式。

编程式事务控制:需使用TransactionTemplate来进行实现,需要在业务代码进行,开启事务提交事务,回滚事务,对业务代码有侵入性,项目中很少使用

声明式事务管理:声明式事务管理建立在AOP之上的。其本质是通过AOP功能,对方法前后进行拦截,将事务处理的功能编织到拦截的方法中,也就是在目标方法开始之前加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。

 面试回答

 面试官:什么是AOP

候选人: aop是面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产 生影响的公共行为和逻辑,抽取公共模块复用,降低耦合,一般比如可以做 为公共日志保存,事务处理等

面试官:你们项目中有没有使用到AOP

候选人: 我们当时在后台管理系统中,就是使用aop来记录了系统的操作日志主要思路是这样的,使用aop中的环绕通知+切点表达式,这个表达式就是要 找到要记录日志的方法,然后通过环绕通知的参数获取请求方法的参数,比 如类信息、方法信息、注解、请求方式等,获取到这些参数以后,保存到数 据库

面试官:Spring中的事务是如何实现的

候选人: spring实现的事务本质就是aop完成,对方法前后进行拦截,在执行方法之前 开启事务,在执行完目标方法之后根据执行情况提交或者回滚事务。

Java菜鸟尹先生
关注 关注
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试大全-Spring】-Aop的理解和使用
起而行动,方能平定心中的惶恐
01-02 7488
Aop面向切面编程,在Spring中,通过配置切面类和切点,切面类中主要有前置通知方法,后置通知方法,异常通知方法以及环绕通知方法,切面类中的方法的逻辑就是你要织入代码的逻辑,然后你需要判断哪些类需要进行前面切面,所以就要配置切入点,可以使用xml方式,也可以使用注解的方法。 实现方式主要是通过动态代理给目标类生成代理对象,如果目标类实现了接口就使用jdk代理,如果没有实现接口使用cglib代理,如果配置了优先级,则默认使用cglib代理。在spring容器启动后,就会去扫描哪些需要进行aop的类,这些类.
Spring面试题 - AOP总结
宋同学shl
11-26 1014
1. AOP概念与基础 与 IOC 一样,咱先回顾一下 AOP 中涉及到的概念。 1.1 AOP概述 AOP 面向切面编程,全称 Aspect Oriented Programming ,它是 OOP 的补充。OOP 关注的核心是对象,AOP 的核心是切面(Aspect)。AOP 可以在不修改功能代码本身的前提下,使用运行时动态代理的技术对已有代码逻辑增强。AOP 可以实现组件化、可插拔式的功能扩展,通过简单配置即可将功能增强到指定的切入点。 学完整个 AOP 部分后,是不是概述中的这些概念就更容
Spring面试题AOP相关面试题:概念?使用场景?如何使用?核心?
丨康有为丨的博客
09-06 599
AOP是面向切面,面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。对多个对象封装成一个模块叫,然后某个方法为。通俗的讲:就是在一些代码中做重复操作的时候,我们为了实现代码的复用性,统一去处理这些工作,让后让我们得操作自然的嵌入(用自定义注解)到指定方法的指定位置。利用AOP可以对业务逻辑 的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高 了开发的效率。
spring技术的通俗理解
u012556994的博客
07-21 3260
spring技术内容太过庞杂,笔者尚在学习之中,以下理解难免有错漏之处,还请大神们提点。 一提到spring技术,随之而来的必然就是这样3个名词:控制反转IOC,依赖注入DI、面向切面编程AOP。但是这3个词语何其晦涩,根本无法“顾名思义”,只有理解其本质才有可能准确get到这3个词语的精确含义。 一、控制反转IOC(Inversion of Control) IOC技术本质上就是对象创建技...
spring aop应用场景_02.面试指南Spring(上)
weixin_39926749的博客
12-18 99
SpringFramework文章导读IOC/Bean的生命周期AOP事务面试套路对于面试官问的各个问题,我们首先要知道面试官问我们这个问题的目的是什么,他想从我这里得到什么答案,比如很多面试官喜欢问spring源码,其实并不是想要我们去背源码,是想我们遇到spring相关的问题时候可以快速的解决。套路分下面三点:我学习源码的过程是什么样的?通过学习源码,我解决过项目中的哪些问题源码的代...
面试总结:AOP
qq_41800568的博客
04-08 285
AOP(面向切面编程)是OOP的延申。 在处理业务的过程中,通过调用对象的方法可以完成对业务的处理;但是如果在业务处理之前要进行一些非核心的处理,如输出日志或做空值判断,这些非核心代码并不重要,并且是可以重用的,我们不想把它加入到核心代码中,但是在执行核心代码之前又必须要进行非核心的处理,这个时候我们就要用到AOP,其核心思想就是代理。 AOP用到的设计模式就是代理模式,即在不影响原功能的前提下,...
06-Spring面试题-重点.docx
08-22
Spring面试题-重点 Spring概述 Spring是一个轻量级Java开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量...
Spring AOP 16道面试题及答案.docx
06-29
Spring AOP,全称为Aspect Oriented Programming,是面向切面编程的一种编程范式,它是对传统的面向对象编程(OOP)的一种补充。在OOP中,核心是对象,而在AOP中,核心则是切面。切面是关注点的模块化,即程序中的...
死磕SpringAOP篇 - Spring AOP常见面试题
最新发布
m0_57077948的博客
03-14 1077
代理模式是一种结构性设计模式,通过代理类为其他对象提供一种代理以控制对这个对象的访问。AOP 代理是 AOP 框架中 AOP 的实现,主要分为静态代理和动态代理,如下:静态代理:代理类需要实现被代理类所实现的接口,同时持有被代理类的引用,新增处理逻辑,进行拦截处理,不过方法还是由被代理类的引用所执行。静态代理通常需要由开发人员在编译阶段就定义好,不易于维护。常用 OOP 继承和组合相结合AspectJ,在编辑阶段会织入 Java 字节码,且在运行期间会进行增强。
面试题--Spring部分.pdf
01-05
面试中,除了上述基本概念,还可能涉及AOP(面向切面编程)、事务管理、Spring Boot、Spring MVC、Spring Data JPA等相关知识。对于Spring的理解深度和广度都是评估开发者能力的重要指标。熟悉这些概念并能结合...
面试:什么是AOPAOP中最重要的概念是什么?
Tine Aine
06-15 678
AOP(Aspect Oriented Programming),也称为面向切面编程,是OOP的一种延续,目的就是将与主业务无关的事情放到代码外去做,尽可能减少代码臃肿,并减少代码的重复部分。OOP通过继承大幅度的减少了类中重复的代码,AOP通过切面减少了方法外或方法中的横切逻辑代码。 AOP最常用的地点就是日志,假设有一个加工流水线,分别是负责洗菜的A,负责做菜的B和负责上菜的C,通常用户点一份菜需要三分钟,但偶尔会出现三小时都没法上菜的情况,这就需要负责人去研究是那个环节出现了问题,比如让每个人把工作
AOP在项目中有哪些应用
大连赵哥的博客
02-23 787
AOP在项目中有哪些应用
面试必问之: Aop详解
Java持续实践
06-03 895
https://www.cnblogs.com/joy99/p/10941543.html
详解Spring面试AOP
RockyBlogs
01-01 1264
AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构。OOP(Object Oriented Programming)面向对象编程(我们都知道OOP是一种编程思想,那么AOP也是一种编程思想,编程思想主要的内容就是指导程序员该如何编写程序,所以它们两个是不同的编程范式。)
面试问题之AOP实现原理
weixin_45764686的博客
05-23 808
作用—— 用于处理系统中分布的各个模块的横切关注点(如:事务管理、日志、缓存等),是使用动态代理实现,在内存中临时为增强某个方法生成一个AOP对象,该对象含有目标对象的所有方法,在特定的切入点做了增强处理,并回调原来的方法。 P:咋眼一看,不能直接理解很正常。 动态代理的实现—— 主要分两种方式实现 1、JDK动态代理 原理说明——JDK动态管理通过反射接收被代理的类,该代理的类必须实现接口,核心是InvocationHandler 和 Proxy类。 2、Cglib动态代理 原理说明——Cglib通过.
Spring框架面试题AOP是什么?都用它做什么?
阿鲁凯米的博客
11-01 2136
一:AOP:面向切面编程             核心原理:使用动态代理的设计模式在执行方法前后或出现异常做加入相关逻辑。 二:我们主要使用AOP来做:         1、事务处理:执行方法前:开始事务、执行完成后关闭事务、出现异常后回滚事务         2、权限判断:执行方法前,判断是否具有权限         3、日志: 在执行前进行日志处理         4、等。
Spring AOP是什么?你都拿它做什么?
哲洛不闹的专栏
01-21 369
为什么会有面向切面编程(AOP)?我们知道Java是一个面向对象(OOP)的语言,但它有一些弊端,比如当我们需要为多个不具有继承关系的对象引入一个公共行为,例如日志、权限...
面试中关于Spring AOP和代理模式的那些事
热门推荐
武哥聊编程
12-09 1万+
我们知道,SpringAOP 是一大核心技术,也是面试中经常会被问到的问题,最近我在网上也看到很多面试题,其中和 Spring AOP 相关的就有不少,这篇文章主要来总结下相关的技术点,希望对大家有用。 0. 几个常见的问题 针对这一块的东西,一般下面几个问题面试官问的比较多: Spring AOP用的是哪种设计模式? 谈谈你对代理模式的理解? 静态代理和动态代理有什么区别? 如何实现动态...
springaop面试题
08-26
当谈到 Spring AOP面试题时,以下是一些常见问题: 1. 什么是 AOP?它与 OOP 有什么区别? 2. Spring AOP 是如何实现的? 3. 在 Spring AOP 中,切面(Aspect)是什么? 4. 什么是连接点(Join Point)和切点...
写文章

热门文章

  • MySQL事务隔离级别详解(全网最详细) 9847
  • 享元模式(Flyweight) 3161
  • Redis面试题,分布式锁 2670
  • SpringSecurity--权限管理架构介绍 1994
  • MySQL优化--覆盖索引,超大分页查询 1637

分类专栏

  • 设计模式 8篇
  • 面试题 5篇
  • MySQL 2篇

最新评论

  • Spring面试题--SpringBoot自动配置原理

    Kiku9420: 这不是黑马的回答吗

  • Redis面试题,分布式锁

    冷静的平头哥: 写的真好,画图很清晰有助于理解,感谢大佬

  • 享元模式(Flyweight)

    PromisingGirl-Du: 哈哈,这不主要是策略模式吗,这样一想策略的缓存也是享元模式哈哈

  • MySQL面试题--索引概念以及底层

    chuchunshili: 好文,我学到了很多表情包

最新文章

  • 做一个简单的查询接口,有什么考量
  • SQL优化--update优化
  • SQL优化--count优化
2023年94篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司郑州营销网站搭建优化网站整站优化选择金手指焦作知名网站优化推荐网站先做内容还是先优化西安网站seo优化评比莱山区个性化网站优化企业网站优化方案网站搜索引擎优化价格多少阜阳市网站seo优化外包公司罗湖外贸网站优化广告九江高端网站建设优化网站的优化优选火3星顶尖网站推广优化模板宁波稳定网站优化公司兰州网站推广优化排名网站移动端链接优化哈尔滨网站优化方案许昌网站优化报价玉屏县网站优化公司日照山东网站优化哪个好河源企业网站关键词优化多少钱如何优化新余网站推广武汉学seo网站优化网站优化的建议云南昆明网站优化推广公司息烽县网站优化公司伊宁网站seo优化公司沈阳网站seo优化哪家靠谱web端网站速度优化刷pc网站优化首页软歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化