首页 > 其他分享 >通俗易懂理解Spring空间的AOP

通俗易懂理解Spring空间的AOP

时间:2024-03-16 22:55:57浏览次数:25  
标签:特效 Spring 电影 切点 织入 通俗易懂 AOP

在Spring AOP(面向切面编程)中,有几个核心概念:切点、切面、以及织入。我们用一个简单的比喻来理解这些概念。

想象你是一名导演,正在拍摄一部电影。在这个比喻中:

切点(Pointcut) 对应于你决定在电影的哪些场景中插入特定的特效或音乐。在上面的代码中,@Pointcut("execution(public * com.hfa.controller.Controller.(..))")就是你定义的“场景”,即当应用程序中的控制器(Controller)类中的任何公共方法被执行时,你决定要做一些特别的事情(比如记录日志)。

切面(Aspect) 对应于你作为导演决定加入的那部分特效或音乐,以及它们如何被插入电影中的决策。在代码中,@Aspect注解的类LogAspect就是这个“特效团队”,它决定了在上述场景(切点定义的)发生时,需要执行的操作(即记录日志)。

织入(Weaving) 对应于特效和音乐被实际加入到电影中的过程。在AOP中,这个过程发生在应用程序编译(编译时织入)、加载(加载时织入)或运行(运行时织入)时。对于Spring AOP来说,织入通常是在运行时完成的,这就意味着Spring框架在程序运行时动态地将你的日志记录逻辑插入到指定的方法执行前。

用这个比喻来说,你在拍摄电影时决定了在特定的场景里要加特效(定义切点),特效团队(切面)负责实现这些特效,并且在电影制作的过程中将这些特效添加到电影里(织入)。在我们的例子中,这意味着在控制器类的方法执行之前,Spring AOP会自动插入日志记录的代码,帮助我们监控和记录应用程序的行为。

标签:特效,Spring,电影,切点,织入,通俗易懂,AOP
From: https://www.cnblogs.com/yige2019/p/18077812

相关文章

  • 1.Spring入门
    1.1 Spring简介  Spring是一个轻量级Java企业级应用程序开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。  SpringFramework6.0......
  • 【开源】SpringBoot框架开发房屋出售出租系统
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1房屋销售模块2.2房屋出租模块2.3预定意向模块2.4交易订单模块三、系统展示四、核心代码4.1查询房屋求租单4.2查询卖家的房屋求购单4.3出租意向预定4.4出租单支付4.5查询买家房屋销售交易单五、免责说......
  • 【开源】SpringBoot框架开发房屋出售出租系统
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1房屋销售模块2.2房屋出租模块2.3预定意向模块2.4交易订单模块三、系统展示四、核心代码4.1查询房屋求租单4.2查询卖家的房屋求购单4.3出租意向预定4.4出租单支付4.5查询买家房屋销售交易单五、免责说......
  • SpringBoot笔记
    SpringBoot官方文档:SpringBoot什么是SpringSpring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者:RodJohnson。Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。Spring如何简化Java开发为了降低Java开发的复杂性,Spring采用了以下4种关键策略:基......
  • 基于springboot的七彩云南文化旅游网站的设计与实现(论文+源码)_kaic
    摘 要传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装七彩云南文化旅游网站软件来发挥其高效地信息处理的作用,可以规范信息管理流程,让管理工作可以系统化和程序化,同时,七彩云南文......
  • Vue+SpringBoot打造教学过程管理系统
    目录一、摘要1.1项目介绍1.2项目录屏二、功能模块2.1教师端2.2学生端2.3微信小程序端2.3.1教师功能如下2.3.2学生功能如下三、系统展示四、核心代码4.1查询签到4.2签到4.3查询任务4.4查询课程4.5生成课程成绩六、免责说明一、摘要1.1项目介绍基......
  • Vue+SpringBoot打造音乐平台
    ``目录一、摘要1.1项目介绍1.2项目录屏二、功能模块三、系统展示四、核心代码4.1查询单首音乐4.2新增音乐4.3新增音乐订单4.4查询音乐订单4.5新增音乐收藏五、免责说明一、摘要1.1项目介绍基于微信小程序+JAVA+Vue+SpringBoot+MySQL的音乐平台,包含了......
  • 【Java】SpringMVC
    MVC是模型(Mode)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。将业务逻辑和数据显示分离,降低了视图与业务逻辑间的双向耦合。DaoServiceServletjsp/html①用户发送请求②Servlet接收请求数据,调用对应的业务逻辑方法③业务处理完毕,返回更新后的数据给servlet④......
  • (java毕业设计源码)基于java(springboot)校园求职招聘系统
    基于java(springboot)校园求职招聘系统项目获取请看文章最底下官网校园求职招聘管理系统,是基于java编程语言,mysql数据库,springboot+vue框架进行开发,本系统分为学生,企业,管理员三个角色,本系统适合作为java毕业设计和java课程设计源码下载进行参考学习。一.技术环境JDK......
  • springboot配置https
    先提条件:一台服务器并配置了宝塔安装了openSSL一、生成ssl文件1.在java环境变量的bin目录下生成.p12的证书,在生成途中只需要记住生成时的密码,其余的可要可不要keytool-genkey-aliastomcat-storetypePKCS12-keyalgRSA-keysize2048-keystorekeystore.p12-v......