Spring AOP教程第五部分:如何自学?

2026-05-28 01:241阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1209个文字,预计阅读时间需要5分钟。

Spring AOP教程第五部分:如何自学?

Spring中的AOP概述

1.基本概念

AOP(面向切面编程)是Java编程中的一种编程范式,它允许开发者在不修改业务逻辑代码的情况下,对代码进行横切关注点的处理。所谓横切关注点,就是指那些与业务逻辑无关,但对整个应用程序有影响的关注点,如日志、权限控制、事务管理等。

2. AOP的关键概念(1)切面(Aspect):切面是AOP中的一个核心概念,它将横切关注点封装起来,如日志、权限控制等。(2)连接点(Joinpoint):连接点是指程序执行过程中的某个特定点,如方法执行、对象创建等。(3)切入点(Pointcut):切入点是匹配连接点的表达式,用于确定哪些连接点会被织入切面。(4)通知(Advice):通知是切面在连接点执行的动作,如前置通知、后置通知、环绕通知等。(5)目标对象(Target Object):目标对象是指被织入切面的对象,即被代理的对象。(6)代理(Proxy):代理对象是目标对象的增强版,它包含了切面的逻辑。

3. AOP面向方面编程所谓面向方面编程,就是将横切关注点从业务逻辑中分离出来,封装成切面,然后在程序运行时动态织入目标对象。这样,开发者就可以专注于业务逻辑的开发,而不用关心横切关注点的实现。

4. 方面举例方面即指横切关注点,如:(1)日志:记录程序运行过程中的关键信息,便于调试和监控。(2)权限控制:控制用户对资源的访问权限。(3)异常处理:统一处理程序运行过程中出现的异常。(4)事务处理:确保业务操作的原子性、一致性、隔离性和持久性。

Spring中的AOP

一、概述

(一)基本概念

1、什么是AOP?

面向方面编程。所谓方面即是指日志、权限、异常处理、事务处理等。

2、AOP的3个关键概念

(1)切入点(Pointcut):Pointcut是Join Point的集合,Join Point就是需要注入Adivce的位置,也就是需要插入日志输出代码、事务处理代码等“方面”(Aspect,也就是AOP中的A)代码的地方。

比如我现在要写一个存钱的方法:saving()

通常情况下我就得在这个saving()方法前后写些事务代码

如:

logger.log(Level.INFO,”start”);
Saving();
logger.log(Level.INFO,”end”);

对于事务代码而言,saving()方法的前后就都是Join Point了。在Spring中它对应config.xml中设定的方法,这个方法就是类(class)中需要进行某方面处理的方法(method)。

(2)通知(Advice):就是指Join Point对应的代码(方法)。比如日志输出这个方面,指的就是日志输出的代码或方法了。在Spring中,它对应类(class)。

(3)Advisor:是Poincut和Advice的配置器,它包括Pointcut和Advice,是将Advice注入程序中Pointcut位置的代码。在Sping中,它对应config.xml中的配置段<bean id=logAdvisor class=”org.springframework.aop.support.RegexpMethodPointcutAdvisor”>

二、实例讲解

首先我们先看这个例子



​​切面(可以是日志、安全性的检查、权限、事务)等工作,这些就叫做切面。。。。​​




​​切面中的方法是什么呢?---切面中的方法是通知​​


织入:

连接点:客户端调用那个方法,那个方法就是连接点。

Spring AOP教程第五部分:如何自学?

aop的最本质的作用:代码块的重用。

问题来了--那如果我们有n个切面,就是开发的时候分配任务,你写你的,我写我的,最后在使用所有的切面即可,我们该怎样调用呢?

这是个最全的方法名称,实际上是来限定一个方法的

配置如下:

<aop:config>

<aop:aspect id="security" ref="securityHandler">

<aop:pointcut id="allAddMethod" expressinotallow="execution(* com.lsb.spring.UserManagerImpl.add*(..))"/>

<aop:before method="checkSecurity" pointcut-ref="allAddMethod" />

</aop:aspect>

</aop:config>







作者:少帅

本文共计1209个文字,预计阅读时间需要5分钟。

Spring AOP教程第五部分:如何自学?

Spring中的AOP概述

1.基本概念

AOP(面向切面编程)是Java编程中的一种编程范式,它允许开发者在不修改业务逻辑代码的情况下,对代码进行横切关注点的处理。所谓横切关注点,就是指那些与业务逻辑无关,但对整个应用程序有影响的关注点,如日志、权限控制、事务管理等。

2. AOP的关键概念(1)切面(Aspect):切面是AOP中的一个核心概念,它将横切关注点封装起来,如日志、权限控制等。(2)连接点(Joinpoint):连接点是指程序执行过程中的某个特定点,如方法执行、对象创建等。(3)切入点(Pointcut):切入点是匹配连接点的表达式,用于确定哪些连接点会被织入切面。(4)通知(Advice):通知是切面在连接点执行的动作,如前置通知、后置通知、环绕通知等。(5)目标对象(Target Object):目标对象是指被织入切面的对象,即被代理的对象。(6)代理(Proxy):代理对象是目标对象的增强版,它包含了切面的逻辑。

3. AOP面向方面编程所谓面向方面编程,就是将横切关注点从业务逻辑中分离出来,封装成切面,然后在程序运行时动态织入目标对象。这样,开发者就可以专注于业务逻辑的开发,而不用关心横切关注点的实现。

4. 方面举例方面即指横切关注点,如:(1)日志:记录程序运行过程中的关键信息,便于调试和监控。(2)权限控制:控制用户对资源的访问权限。(3)异常处理:统一处理程序运行过程中出现的异常。(4)事务处理:确保业务操作的原子性、一致性、隔离性和持久性。

Spring中的AOP

一、概述

(一)基本概念

1、什么是AOP?

面向方面编程。所谓方面即是指日志、权限、异常处理、事务处理等。

2、AOP的3个关键概念

(1)切入点(Pointcut):Pointcut是Join Point的集合,Join Point就是需要注入Adivce的位置,也就是需要插入日志输出代码、事务处理代码等“方面”(Aspect,也就是AOP中的A)代码的地方。

比如我现在要写一个存钱的方法:saving()

通常情况下我就得在这个saving()方法前后写些事务代码

如:

logger.log(Level.INFO,”start”);
Saving();
logger.log(Level.INFO,”end”);

对于事务代码而言,saving()方法的前后就都是Join Point了。在Spring中它对应config.xml中设定的方法,这个方法就是类(class)中需要进行某方面处理的方法(method)。

(2)通知(Advice):就是指Join Point对应的代码(方法)。比如日志输出这个方面,指的就是日志输出的代码或方法了。在Spring中,它对应类(class)。

(3)Advisor:是Poincut和Advice的配置器,它包括Pointcut和Advice,是将Advice注入程序中Pointcut位置的代码。在Sping中,它对应config.xml中的配置段<bean id=logAdvisor class=”org.springframework.aop.support.RegexpMethodPointcutAdvisor”>

二、实例讲解

首先我们先看这个例子



​​切面(可以是日志、安全性的检查、权限、事务)等工作,这些就叫做切面。。。。​​




​​切面中的方法是什么呢?---切面中的方法是通知​​


织入:

连接点:客户端调用那个方法,那个方法就是连接点。

Spring AOP教程第五部分:如何自学?

aop的最本质的作用:代码块的重用。

问题来了--那如果我们有n个切面,就是开发的时候分配任务,你写你的,我写我的,最后在使用所有的切面即可,我们该怎样调用呢?

这是个最全的方法名称,实际上是来限定一个方法的

配置如下:

<aop:config>

<aop:aspect id="security" ref="securityHandler">

<aop:pointcut id="allAddMethod" expressinotallow="execution(* com.lsb.spring.UserManagerImpl.add*(..))"/>

<aop:before method="checkSecurity" pointcut-ref="allAddMethod" />

</aop:aspect>

</aop:config>







作者:少帅