代码编织梦想

spring Aop的概念

aspect:一定要给spring去管理 抽象 aspectj->类
pointcut:切点表示连接点的集合(我的理解:PointCut是JoinPoint的谓语,这是一个动作,主要是告诉通知连接点在哪里,切点表达式决定 JoinPoint 的数量)
Joinpoint:连接点 (我的理解:JoinPoint是要关注和增强的方法,也就是我们要作用的点)
Weaving :把代理逻辑加入到目标对象上的过程叫做织入target 目标对象 原始对象aop Proxy 代理对象 包含了原始对象的代码和增加后的代码的那个对象
advice:通知 (位置 + logic)

advice通知类型:
Before 连接点执行之前,但是无法阻止连接点的正常执行,除非该段执行抛出异常
After 连接点正常执行之后,执行过程中正常执行返回退出,非异常退出
After throwing 执行抛出异常的时候
After (finally) 无论连接点是正常退出还是异常退出,都会执行
Around advice: 围绕连接点执行,例如方法调用。这是最有用的切面方式。around通知可以在方法调用之前和之后执行自定义行为。它还负责选择是继续加入点还是通过返回自己的返回值或抛出异常来快速建议的方法执行。

Proceedingjoinpoint 和JoinPoint的区别:
Proceedingjoinpoint 继承了JoinPoint,proceed()这个是aop代理链执行的方法。并扩充实现了proceed()方法,用于继续执行连接点。JoinPoint仅能获取相关参数,无法执行连接点。JoinPoint的方法
1.java.lang.Object[] getArgs():获取连接点方法运行时的入参列表;
2.Signature getSignature() :获取连接点的方法签名对象;
3.java.lang.Object getTarget() :获取连接点所在的目标对象;
4.java.lang.Object getThis() :获取代理对象本身;proceed()有重载,有个带参数的方法,可以修改目标方法的的参数

各种连接点joinPoint:

@Pointcut(“execution(* com.chenss.dao..(…))”)//匹配com.chenss.dao包下的任意接口和类的任意方法
@Pointcut(“execution(public * com.chenss.dao..(…))”)//匹配com.chenss.dao包下的任意接口和类的public方法
@Pointcut(“execution(public * com.chenss.dao..())”)//匹配com.chenss.dao包下的任意接口和类的public 无方法参数的方法
@Pointcut(“execution(* com.chenss.dao..(java.lang.String, …))”)//匹配com.chenss.dao包下的任意接口和类的第一个参数为String类型的方法
@Pointcut(“execution(* com.chenss.dao..(java.lang.String))”)//匹配com.chenss.dao包下的任意接口和类的只有一个参数,且参数为String类型的方法
@Pointcut(“execution(* com.chenss.dao..(java.lang.String))”)//匹配com.chenss.dao包下的任意接口和类的只有一个参数,且参数为String类型的方法
@Pointcut(“execution(public * (…))")//匹配任意的public方法
@Pointcut("execution(
te*(…))”)//匹配任意的以te开头的方法
@Pointcut(“execution(* com.chenss.dao.IndexDao.(…))")//匹配com.chenss.dao.IndexDao接口中任意的方法
@Pointcut("execution(
com.chenss.dao….(…))”)//匹配com.chenss.dao包及其子包中任意的方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_38339998/article/details/127992869

Spring框架(认识SpringAOP及底层原理)-爱代码爱编程

目录,更新ing,学习Java的点滴记录   目录放在这里太长了,附目录链接大家可以自由选择查看--------Java学习目录 Spring知识   一丶SpringIOC初步认识↓↓↓ 第一篇---->初识Spring   二丶SpringIOC深入↓↓↓ 第二篇---->深入SpringIoC容器(一) 第三篇---->深入S

Spring AOP入门以及基于XML的Spring AOP配置的深入学习与使用【两万字】-爱代码爱编程

  基于最新Spring 5.x,详细介绍了AOP的概念以及基于XML的核心Spring AOP机制的配置和使用。   本次我们介绍AOP的概念以及基于XML的核心Spring AOP机制的配置和使用。包括Spring AOP的开启,< aop:config >、< aop:aspect >、< aop:point

java aop 实例_Spring aop 简单示例-爱代码爱编程

简单的记录一下spring aop的一个示例 基于两种配置方式: 基于xml配置 基于注解配置 这个例子是模拟对数据库的更改操作添加事物 其实并没有添加,只是简单的输出了一下记录 首先看下整个例子的目录图 全部代码就不贴了,数目有点多,不过很简单,看一部分就能够明白 第一种配置方式 基于xml方式配置 首先将service,da

第六部分 Spring AOP 应用-爱代码爱编程

第六部分 Spring AOP 应用 AOP本质:在不改变原有业务逻辑的情况下增强横切逻辑,横切逻辑代码往往是权限校验代码,日志代码,事务控制代码,性能监控代码。 第一节 AOP 相关术语 1.1 业务主线 在讲解AOP术语之前,我们先来看一下下面这两张图,它们就是第三部分案例需求的扩展(针对这些扩展的需求,我们只进行分析,在此基础上去进一步回顾A

Spring AOP(JDK,CGLIB代理)-爱代码爱编程

AOP简介 我们在做某个业务的时候,可能需要对业务进行拓展,比如说我们做了一个查询业务, 功能上已经可以使用了,但是我们有了新的需求,需要对原有业务的功能进行扩充,比如 我们可能需要判断一下当前是否可以查询此业务(时段考试),我们也可能需要知道当前操作的一些信息,如操作人,操作时间,操作完成情况等来做日志管理。总之,我们需要对类中的方法进行功能扩展。 我

Spring AOP 切点详解-爱代码爱编程

本文内容 Spring 10种切点表达式详解切点的组合使用公共切点的定义声明切点@Poincut @Poincut 的使用格式如下: @Poincut("PCD") // 切点表达式 表示对哪些方法进行增强 public void pc(){} // 切点签名,返回值必须为void 10种切点表达式 AspectJ的切点指示符AspectJ p

Spring AOP代码实现:实例演示与注解全解-爱代码爱编程

1 理解AOP 1.1 什么是AOP AOP(Aspect Oriented Programming),面向切面思想,是Spring的三大核心思想之一(两外两个:IOC-控制反转、DI-依赖注入)。 那么AOP为何那么重要呢?在我们的程序中,经常存在一些系统性的需求,比如权限校验、日志记录、统计等,这些代码会散落穿插在各个业务逻辑中,非常冗余且不利于

Spring AOP使用示例-爱代码爱编程

AOP:【面向切面编程】 指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式。 1、导入aop模块:Spring AOP:(spring-aspects) 2、定义一个业务逻辑类(MathCalculator);在业务逻辑运行的时候讲日志进行打印(方法之前、方法运行结束、方法出现异常等) 3、定义一个日志切面类(LOgAspect

02.springMVC设计思想及springAOP-爱代码爱编程

MVC设计思想 历史问题:如果将大量的代码都写到一个方法中,后期维护不易 MVC说明: 1.M Model 数据层 数据处理/数据的持久化 2.V View 视图层 前端页面相关的内容(看到的内容) 3.C Control 控制层 控制数据的流转过程 层级代码结构 前提:在项目中代码需要松耦合,根据MVC指导思想,后端代码进行了优化,演变为现

spring框架系列(10) - spring aop实现原理详解之aop代理的创建_pdai的博客-爱代码爱编程

上文我们介绍了Spring AOP原理解析的切面实现过程(将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor)。本文在此基础上继续介绍,代理(cglib代理和JDK代理)的创建过程。@pdai Spring框架系列(10) - Spring AOP实现原理详解之AOP

springboot如何避免sql注入漏洞呢?_qq_25073223的博客-爱代码爱编程

转自: SpringBoot如何避免SQL注入漏洞呢? 下文笔者讲述SpringBoot避免SQL注入漏洞的方法分享,如下所示 SQL盲注,SQL注入简介 SQL注入的风险: 数据库中的数据被任意查看,修改,删除 SQL注入的原因: 未对用户输入进行正确的验证 SQL注入如何避免 对危险字符进行过滤或sql参数化

【spring从入门到实战教程】第三章 spring aop详解-爱代码爱编程

三、Spring AOP 3.1 AOP前奏 3.1.1 需求 日志,在程序执行期间追踪正在发生的活动; 验证,程序执行期间处理合法数据; 3.1.2 代码 UserService接口以及实现类: public interface UserService { void insertUser(); void up

spring aop面向切面编程_怎么跳过aop切面-爱代码爱编程

1、AOP简介 如图,某个项目案例中的软件模块A,和软件模块B可能会在运行前使用到权限切面或者运行后需要使用日志切面 权限切面和日志切面穿插在软件模块中,为原始业务代码添加额外的拓展,随称为面向切面编程 (Aspect) 软件模块A、B只是包含自己的功能,并不知道切面的存在,当业务不需要这两个切面的功能时,直接移除这两个切面,而需要时,直接引

spring aop注解开发使用方法及快速入门案例_一个快速的注解方式快速aop-爱代码爱编程

1 AOP简介及作用 1.1简介 AOP(Aspect Oriented Programing)面向切面编程,其基于Spring IOC。AOP可以拦截指定的方法并且对方法增强,而且无需侵入到业务代码中,使业务与非业务处

spring aop与事务_spring aop和事务相关知识,-爱代码爱编程

目录 1.AOP简介 1.1什么是AOP 1.2AOP作用 1.3AOP核心概念 2.AOP入门案例 2.1需求分析 2.2思路分析 2.3环境准备 2.4AOP实现步骤 3.AOP工作流程 3.1AOP工作流程 流程1:Spring容器启动 流程2:读取所有切面配置中的切入点 流程3:初始化bean 流程4:获取bean