网站开发工作好吗,课程设计代做网站,百度爱采购怎么优化排名,百度seo分析工具提示#xff1a;主要内容参考动力节点老杜的Spring6讲义。 面向切面编程 AOP 一、AOP介绍二、AOP的七大术语三、切点表达式 IoC使软件组件松耦合。AOP让你能够捕捉系统中经常使用的功能#xff0c;把它转化成组件。AOP#xff08;Aspect Oriented Programming#xff09;主要内容参考动力节点老杜的Spring6讲义。 面向切面编程 AOP 一、AOP介绍二、AOP的七大术语三、切点表达式 IoC使软件组件松耦合。AOP让你能够捕捉系统中经常使用的功能把它转化成组件。AOPAspect Oriented Programming面向切面编程面向方面编程。AOP是一种编程思想AOP底层使用的就是动态代理来实现的。Spring的AOP使用的动态代理是JDK动态代理 CGLIB动态代理技术。Spring在这两种动态代理中灵活切换如果是代理接口会默认使用JDK动态代理如果要代理某个类这个类没有实现接口就会切换使用CGLIB。当然你也可以强制通过一些配置让Spring只使用CGLIB。 一、AOP介绍
一般一个系统当中都会有一些系统服务例如日志、事务管理、安全等。这些系统服务被称为交叉业务这些交叉业务几乎是通用的不管你是做银行账户转账还是删除用户数据。日志、事务管理、安全这些都是需要做的。如果在每一个业务处理过程当中都掺杂这些交叉业务代码进去的话存在两方面问题 第一交叉业务代码在多个业务流程中反复出现显然这个交叉业务代码没有得到复用。并且修改这些交叉业务代码的话需要修改多处。第二程序员无法专注核心业务代码的编写在编写核心业务代码的同时还需要处理这些交叉业务。 使用AOP可以很轻松的解决以上问题。 用一句话总结AOP将与核心业务无关的代码独立的抽取出来形成一个独立的组件然后以横向交叉的方式应用到业务流程当中的过程被称为AOP。AOP的优点 第一代码复用性增强。第二代码易维护。第三使开发者更关注业务逻辑。 二、AOP的七大术语
连接点 Joinpoint 在程序的整个执行流程中可以织入切面的位置。方法的执行前后异常抛出之后等位置。 切点 Pointcut 在程序执行流程中真正织入切面的方法。一个切点对应多个连接点 通知 Advice 通知又叫增强就是具体你要织入的代码。通知包括 前置通知后置通知环绕通知异常通知最终通知 切面 Aspect 切点 通知就是切面。 织入 Weaving 把通知应用到目标对象上的过程。 代理对象 Proxy 一个目标对象被织入通知后产生的新对象。 目标对象 Target 被织入通知的对象。 三、切点表达式
切点表达式用来定义通知Advice往哪些方法上切入。切入点表达式语法格式
execution([访问控制权限修饰符] 返回值类型 [全限定类名]方法名(形式参数列表) [异常])访问控制权限修饰符 可选项。没写就是4个权限都包括。写public就表示只包括公开的方法。 返回值类型 必填项。* 表示返回值类型任意。 全限定类名 可选项。两个点 “..” 代表当前包以及子包下的所有类。省略时表示所有的类。 方法名 必填项。* 表示所有方法。set* 表示所有的set方法。 形式参数列表 必填项() 表示没有参数的方法(..) 参数类型和个数随意的方法(*) 只有一个参数的方法(*, String) 第一个参数类型随意第二个参数是String的。 异常 可选项。省略时表示任意异常类型。 案例execution(public * com.powernode.mall.service.*.delete*(..)) service包下所有的类中以delete开始的所有方法
execution(* com.powernode.mall..*(..)) mall包下所有的类的所有的方法
execution(* *(..)) 所有类的所有方法