面向切面编程AOP ---切面提供了一种取代继承和委托的方式
AOP中的术语:
通知:就是程序的功能,比如 安全、事务、日志等
连接点:和方法有关的前前后后,都是连接点
切入点:说明在哪儿干
切面:通知和切入点相互结合
引入:允许我们向现在的类中添加新的方法和属性,把切面用到目标类中
目标:引入中提到的目标类
织入:吧切面应用到目标对象来创建新的代理对象的过程。
代理:就是向目标对象应用通知后被创建的对象。
spring对AOP的支持局限于方法的注入,spring创建的全部通知都是用标准的java类编写的,,定义通知所应用的切点通常是以XML文件的方式在spring配置文件中配置的。
spring利用代理类来包裹切面,从而把他们织入到spring管理的bean中,在代理借钱方法调用之后,实际调用的目标bean方法之前,代理会执行切面逻辑。
spring生成代理类的方式有两种:
1、如果目标对象实现的是一个接口,spring会使用jdk的proxy类,它允许spring动态生成一个新的类来实现必要的接口,织入任何的通知,并把对这些接口的任何调用都转发给目标类。
2、如果目标类不是一个实现一个接口,spring就会使用CGLIB库生成目标类的一个子类,在创建这个子类时,spring织入通知,并且把这个子类的调用委托到目标类
引入aop 的namespace
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
基于pojo的aop的xml文件配置
<!-- aop -->
<bean id="inform" class="com.hnie.demo.service.impl.Inform"></bean>
<aop:config>
<aop:aspect ref="inform">
<aop:pointcut expression="execution(* *.sayHello(. .))" id="performance"/>
<aop:before method="before" pointcut-ref="performance"/>
<aop:after-returning method="end" pointcut-ref="performance"/>
<aop:after-throwing method="excepition" pointcut-ref="performance"/>
</aop:aspect>
</aop:config>
定义通知
package com.hnie.demo.service.impl;
public class Inform {
public void before(){
System.out.println("在方法之前执行");
}
public void end(){
System.out.println("在方法之后执行");
}
public void excepition(){
System.out.println("在遇到异常时执行");
}
}
分享到:
相关推荐
Spring AOP 术语详解 Spring 中的 AOP 术语可能会使人感到困惑,但本文将对 AOP 术语进行通俗的解释。...AOP 术语的理解是非常重要的,掌握这些术语可以帮助我们更好地理解和使用 AOP 编程技术。
通过学习这个示例,你可以更深入地理解AOP在实际项目中的应用。 总的来说,AOP通过通知和切点的概念,使得我们可以编写更加模块化和可维护的代码,降低了系统复杂性,提高了代码复用性。在Java领域,Spring框架提供...
四、AOP术语 - 切面(Aspect):定义一组相关或相互关联的通知和切点的模块化组件。 - 通知(Advice):在特定连接点执行的代码,例如日志记录、事务管理等。 - 切点(Pointcut):定义在何处应用通知的规则。可以是...
在AOP术语中,连接点通常指那些可以被增强操作的位置。 切入点(Pointcut)是匹配连接点的表达式。通过切入点,可以定义在哪些具体的连接点上应用通知,它是AOP中用于定义何时以及在哪里执行通知的模块。切入点的...
1.2. AOP 核心概念与术语 - 切面(Aspect):切面是横切关注点的封装,通常表现为一个类,可以包含切入点和通知。 - 连接点(Joinpoint):程序执行过程中的一个特定点,比如方法的调用或异常的抛出。 - 切入点...
要深入理解AOP,开发者需要熟悉上述的概念和术语。在实践中,开发者可以通过阅读Spring AOP和AspectJ的官方文档、参考示例项目、参与社区讨论等方式来进一步提升自己的理解。通过实际的编码实践和问题解决,开发者...
【AOP 术语解析】 1. **Aspect(切面)**:切面是封装了横切关注点的类,比如事务管理、日志记录等。它结合了多个通知(Advice)和切入点(Pointcut)。 2. **Joinpoint(连接点)**:程序执行过程中的特定点,比如...
**AOP术语解释:** 1. **切面(Aspect)**:切面是AOP的核心,它封装了多个相关操作的逻辑,这些操作被称为通知(Advice)。 2. **通知(Advice)**:在特定连接点(Join Point)执行的代码,如方法调用前、后或异常...
1. 通知(Advice):这是AOP术语中最核心的概念。通知定义了切面应用到目标对象时所要执行的行为。它代表了“何时”(何时执行)和“做什么”(执行什么动作)。通知类型包括前置通知(Before)、后置通知(After)...
2、理解AOP中的相关术语; 3、了解Spring中两种动态代理方式的区别; 4、掌握基于XML和注解的AspectJ开发。 二、 实验内容 1、按图所示的类图结构,设计接口及其实现类,并完成另外两附加要求:(1)日志功能:在...
在讨论Spring AOP(面向切面编程)时,首先需要理解几个核心概念。Spring AOP 是Spring框架提供的一个功能模块,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑中解耦出来,通过在方法调用前后进行...
#### 三、AOP的基本术语 - **切面(Aspect)**:一个关注点的模块化,通常由一组通知构成。 - **连接点(Joinpoint)**:程序执行中的特定点,如方法调用或异常抛出。 - **通知(Advice)**:在特定的连接点上执行的...
本文将深入探讨Spring AOP的基本概念、核心术语以及如何通过实例来应用它。 ### 1. Spring AOP 概念 - **切面(Aspect)**: 切面是关注点的一个模块化,它包含了横切关注点的定义。在Spring中,切面可以是独立的类...
AOP术语** - **连接点(Joinpoint)**: 程序执行中的特定点,如方法调用、异常抛出等。 - **切点(Pointcut)**: 定义一组连接点,是实际应用AOP的地方。 - **通知(Advice)**: 在切点处执行的代码,可以是环绕...
通过以上详细说明,可以看出 JBoss AOP 不仅提供了一套强大的 AOP 框架,而且还包括了一系列实用的工具和资源,旨在帮助开发人员更好地理解和应用 AOP 技术。无论是对于初学者还是有经验的开发者来说,JBoss AOP 都...
##### 2.1 AOP术语定义 - **关注点(Concern)**:指一个具体的业务目的或功能需求。例如,一个银行系统的业务关注点可能是账户转账,而横切关注点(Crosscutting Concerns)则可能包括日志记录、事务管理、安全性...
以下,我们详细探讨了Spring AOP的循环依赖解决机制和AOP的术语以及相关概念。 首先,Spring解决循环依赖依赖于其容器的特性,特别是在其单例作用域下的Bean生命周期管理。循环依赖指的是当两个或多个Bean互相注入...
- **AOP术语介绍**: - **切面(Aspect)**:包含多个切入点和相应的通知的集合。 - **连接点(Joinpoint)**:程序执行过程中的某个特定点,如方法调用或异常抛出。 - **切入点(Pointcut)**:匹配连接点的一个...
二、AOP术语 1. 切面(Aspect):切面是关注点的模块化,它包含连接点、通知、切入点表达式等。 2. 连接点(Join Point):程序执行过程中的某个特定点,如方法调用或异常处理。 3. 通知(Advice):在特定连接点...
- Spring AOP的基本概念和术语。 - 如何创建切面、定义通知以及切入点表达式。 - 掌握JDK动态代理和CGLIB的工作原理。 - 熟悉@Aspect、@Before、@After、@Around等注解的使用。 - 学习如何在Spring配置文件中配置AOP...