在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