首页 > 其他分享 >11_Spring_AOP概念和原理

11_Spring_AOP概念和原理

时间:2023-07-30 12:44:36浏览次数:40  
标签:11 point Spring Advice AOP joint Aspect 通知

11_Spring_AOP概念和原理

image

AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等

AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理

image

为Dao层所有的add方法添加一个性能记录功能

AOP中的术语辨析

1 连接点 Joint point:

类里面那些可以被增强的方法,这些方法称之为连接点

表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point

2 切入点 Pointcut:

实际被增强的方法,称之为切入点

表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice
将要发生的地方

3 通知 Advice:

实际增强的逻辑部分称为通知 (增加的功能)

Advice 定义了在 Pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint
point 之前、之后还是代替执行的代码。

通知类型: 1 前置通知 2 后置通知 3 环绕通知 4 异常通知 5 最终通知

4 目标对象 Target:被增强功能的对象(被代理的对象)

织入 Advice 的目标对象

5 切面Aspect: 表现为功能相关的一些advice方法放在一起声明成的一个Java类

Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。

6 织入 Weaving:

创建代理对象并实现功能增强的声明并运行过程

将 Aspect 和其他对象连接起来, 并创建 Adviced object 的过程


Generated with Mybase Desktop 8.2.13

标签:11,point,Spring,Advice,AOP,joint,Aspect,通知
From: https://www.cnblogs.com/01way/p/17591281.html

相关文章

  • 10_Spring_CGLIB动态代理
    10_Spring_CGLIB动态代理proxy动态代理面向接口1必须有接口和实现类2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类packagecom.msb.testCglib;importorg.junit.Test;importorg.springframework.cglib.proxy.Enhancer;importorg.s......
  • 14_Spring_JDBCTemplate的使用
    14_Spring_JDBCTemplate的使用JdbcTemplate概述JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等......
  • 最完美WIN11_Pro_22H2.22621.2070软件选装纯净版VIP51.2
    【系统简介】=============================================================1.本次更新母盘来自UUP_WIN11_Pro_22H2.22621.2070。进一步精简优化调整。2.只为呈现最好的作品,手工精简优化部分较多。3.OS版本号为22621.2070。个别要求高的就下MSDN吧,里面啥功能都有。4.集成《DrvCeo......
  • 1_Spring概念介绍_了解
    1_Spring概念介绍_了解Spring是分层的全栈式的轻量级开发框架,以IOC和AOP为核心,官网是https://spring.ioSpring版本情况Spring优势1方便解耦,简化开发Spring通过容器,将对象的创建从代码中剥离出来,交给Spring控制,避免直接编码造成模块之间的耦合度高,用户也不必自己编......
  • 《Kali渗透基础》11. 无线渗透(一)
    @目录1:无线技术特点2:IEEE802.11标准2.1:无线网络分层2.2:IEEE2.3:日常使用标准2.3.1:802.112.3.2:802.11b2.3.3:802.11a2.3.4:802.11g2.3.5:802.11n3:无线网络运行模式3.1:Infrastructure3.2:AD-HOC3.3:WDS3.4:MonitorMode4:无线技术概念4.1:信号单位4.2:全向天线4.3:定向天线本系列侧重方法......
  • 【SpringBoot】快速入门
    (知识目录)一、SpringBoot快速入门1.1idea创建(1)新建模块,选择SpringInitializer,一定要记得选择SpringBoot的版本为2.7.7注意上面的两个目录一定要是空目录,然后点击apply,OK即可,之后进入到主界面。(2)编写UserController类packagecom.itxiaoguo.controller;importor......
  • Spring Security安全框架在Spring Boot框架中的使用
    SpringSecurity是一个基于Spring框架的安全框架,它提供了一系列的安全服务和功能,包括身份验证、授权、防护等。在SpringBoot框架中,SpringSecurity是一个非常重要的组件,它可以帮助我们实现应用程序的安全性。本文将详细介绍SpringSecurity在SpringBoot框架中的使用,包括如何配置S......
  • springboot的controller如何拿到post请求中的json数据
    在SpringBoot的Controller中,可以使用注解@RequestBody来获取POST请求中的JSON数据。我们可以将这个注解应用到一个Controller方法的参数上,Spring将会负责读取请求正文中的数据,将其反序列化为一个Java对象,并将其作为Controller方法的参数传递。以Java代码为例,示例代码如下:@RestC......
  • 常见的状态码 11
    状态码   短语   描述100   Continue   服务端已收到请求并要求客户端继续发送主体200   Ok   已成功提交,且响应主体中包含请求结果201   Created   PUT请求方法的返回状态,请求成功提交301   MovedPermanently   请求永久重定向302  ......
  • 不启动SpringBootApplication 直接测试mybatis 下面xml中的sql
     测试类 privatestaticSqlSessionsqlSession=null;privatestaticRunoobTblMappermapper; @BeforeClasspublicstaticvoidsetUpMybatisDatabase()throwsIOException{InputStreamresourceAsStream=null;try{ClassLoaderclassLoader=R......