`

aop相关的概念及配置

 
阅读更多
切面(Aspect):
通常在目标方法执行前后需要执行的方法(如事务、日志、权限),这些方法我们封装到一个类里面,这个类就叫切面。

连接点(joinpoint)
spring里面的连接点指需要切入的方法,通常这个joinpoint可以作为一个参数传入到切面的方法里面(非常有用的一个东西)。

通知(Advice)
通知就是切面里面方法的具体实现,分为前置、后置、最终、异常环绕通知。

切入点(Pointcut)
所谓切入点,通常是指一个表达式,按照包的匹配来切入进去。

目标对象(target)
代理的目标对象。

以下是spring aop的一个实现
先写切面类,代码如下:
public class AopDemo {
	
	public void beforeAdvice(){
		System.out.println("我是前置通知");
	}
	
	/*
	 * 如果目标方法发生异常,则后置通知不会执行
	 */
	public void afterReturnAdvice(){
		System.out.println("我是后置通知");
	}
	
	/*
	 * 如果目标方法发生异常,则最终方法还是会执行
	 */
	public void afterAdvice(JoinPoint joinPoint){
		
		System.out.println(joinPoint.getTarget());//可以获取到目标对象
		System.out.println(joinPoint.getArgs()[0]);//获取目标方法的参数
	
		System.out.println("我是最终通知");
	}
	
	/*
	 * 如果发生异常才执行此方法,否则不执行
	 */
	public void exceptionAdvice(){
		//实际的时候如果发生异常,可以跳转错误页面,也可以发邮件给管理员告知出了异常
		System.out.println("我是异常通知");
	}
	
	public void aroundAdvice(){
		//
		System.out.println("我是环绕通知");
	}

}

然后写业务逻辑类:
public class GoodsImpl {
	
	public void save(Goods goods){
		System.out.println("save goods");
	}
	
	public void delete(Goods goods){
		System.out.println("delete goods");
	}

}


配置文件代码:
<!--业务逻辑类  -->
	<bean id="goodsImpl" class="com.alt.bean.GoodsImpl"/>
	 <!-- 切面 -->
	<bean id="aop" class="com.alt.aop.AopDemo"/>
	 
	 <aop:config>
	 	<aop:aspect ref="aop">
	 	<aop:after method="afterAdvice" pointcut="execution(* com.alt.bean.GoodsImpl.save(..))"/>
	 	</aop:aspect>
	 </aop:config>


最后的测试类:
public class AopTest {
	private static ClassPathXmlApplicationContext context = null;
	private static GoodsImpl goodsImpl = null;
	@BeforeClass
	public static void init(){
		context = new ClassPathXmlApplicationContext("applicationContext-*.xml");
		goodsImpl = (GoodsImpl) context.getBean("goodsImpl");
	}
	@Test
	public void testAop(){
		System.out.println("start");
		Goods goods = new Goods(1, "大米", 23.4);
		goodsImpl.save(goods);
	}

}

以上是一个AOP的一个大致实现。
最后关于切入表达式:
execution()里面的内容
execution( [修饰符]  返回值类型 [类的全限定名.]方法名(参数) )





分享到:
评论

相关推荐

    使用Spring配置文件实现AOP

    一、理解AOP概念 AOP的核心思想是将分散在各个模块中的交叉性代码(如日志、事务处理)抽取出来,形成独立的切面,以便于复用和维护。它提供了一种模块化的方式,使得我们可以专注于编写核心业务代码,而无需关心...

    AOP的相关概念

    ### AOP的相关概念 #### AOP概述 AOP(Aspect Oriented Programming,面向切面编程)是一种编程思想,它的核心在于将程序中的横切关注点(Cross-cutting Concerns)从业务逻辑中抽离出来,形成独立的组件,从而使得...

    AOP的相关概念,基于XML的AOP的配置,基于注解的AOP配置

    ### AOP的相关概念 **AOP**,全称为**Aspect-Oriented Programming**,即面向切面编程。这种编程范式旨在将横切关注点(Cross-cutting Concerns)从业务逻辑中分离出来,以便更好地模块化这些关注点。简单来说,AOP...

    Aop配置示例

    本文将深入探讨Spring AOP的配置及其在模拟MVC模式下的应用,以"SpringAopMvcDemo"为例,解析服务层异常处理的实现。 首先,我们需要理解AOP的基本概念。AOP是一种编程范式,旨在提高代码的可复用性和可维护性,...

    AOP四种配置方式demo

    AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要概念,它提供了一种将关注点(如日志、事务管理等)与核心业务逻辑分离的方式,从而实现代码的模块化和可重用性。AOP通过定义切面...

    springAop的配置实现

    **Spring AOP 配置实现详解** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的重要组成部分,它允许我们通过分离关注点来简化应用程序的开发。在传统的面向对象编程中,业务逻辑与日志记录...

    ssh添加aop配置

    首先,了解AOP的基本概念。AOP是一种编程范式,旨在提高代码的复用性和模块化,通过将关注点分离到所谓的"切面"中。在SSH中,AOP主要由Spring框架提供支持,我们可以定义切点(Pointcut)来标识感兴趣的代码,然后...

    AOP基础与配置说明

    了解了AOP的基本概念后,我们可以深入探讨如何在Spring中使用AOP,包括如何定义切面、切入点和通知,以及如何选择合适的代理方式。同时,我们还可以讨论AOP在实际项目中的应用,如事务管理、性能监控、日志记录等...

    Spring AOP之基于Schema配置总结与案例

    Spring AOP通过代理模式实现了这一概念,提供了声明式的方式来实现切面的织入。 在Spring中,有两种主要的配置方式:基于XML的Schema配置和基于注解的配置。这里我们关注的是基于XML Schema的配置。这种方式需要在...

    aop配置demo

    在本“aop配置demo”中,我们将探讨两种主要的AOP配置方式:基于XML的配置和基于注解的配置。 首先,让我们深入了解一下基于XML的配置。在Spring的XML配置文件中,我们可以通过`&lt;aop:config&gt;`标签来启用AOP支持。...

    Xml文件配置实现AOP通知

    **Spring框架中的AOP概念** 在面向切面编程(Aspect Oriented Programming,简称AOP)中,我们关注的是横切关注点,即那些跨越多个对象和模块,与业务逻辑交织在一起但又相对独立的代码,如日志、事务管理、性能...

    Spring_AOP_XML配置

    **Spring AOP XML配置**是Spring框架中一种重要的面向切面编程(Aspect-Oriented Programming,简称AOP)实现方式,允许开发者定义“横切关注点”,如日志、事务管理等,这些关注点可以独立于业务代码进行,提高代码...

    利用SPring AOP配置切面的一个例子

    在深入探讨Spring AOP(Aspect Oriented Programming)的配置实例之前,我们先简要回顾一下AOP的基本概念及其在软件开发中的作用。面向切面编程是一种编程范式,它旨在通过将横切关注点(Cross-cutting Concerns)从...

    SpringAop xml方式配置通知

    **一、AOP概念解析** 1. **切面(Aspect)**:一个关注点的模块化,例如事务管理就是一个切面。在Spring AOP中,切面由`@Aspect`注解的类定义。 2. **连接点(Join Point)**:程序执行过程中的某个特定点,如方法...

    Spring 基于基于XML配置方式实现AOP

    首先,了解AOP的基本概念是必要的。AOP的核心是切面(Aspect),它封装了多个相关操作,形成了一个关注点。切点(Pointcut)定义了这些操作应用到何处,通知(Advice)则是实际执行的代码,例如方法调用前后的拦截...

    spring-aop标签和配置文件两种方式实例

    本实例将探讨如何在Spring中使用XML配置文件和AOP标签来实现这一功能,特别是针对Spring 2.5及以上版本。 首先,我们来看XML配置文件方式。在Spring中,AOP可以通过`&lt;aop:config&gt;`标签来配置。下面是一个基本的AOP...

    springIOC与AOP配置

    在本文中,我们将深入探讨Spring的IOC容器和AOP的核心概念,以及如何进行相关配置。 **依赖注入(IOC)** 依赖注入(Inversion of Control,简称IOC)是Spring框架的核心特性之一,它的主要目标是降低组件之间的...

    sping aop注解配置

    1. **切面(Aspect)**:切面是AOP的核心概念,它封装了多个通知(advises),这些通知定义了特定的关注点,如方法拦截。在Spring AOP中,一个切面通常是一个带有`@Aspect`注解的类。 2. **通知(Advice)**:通知...

    Spring AOP面向方面编程原理:AOP概念

    ### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...

    aop 多切面配置demo

    1. **Spring AOP基本概念** - **切面(Aspect)**:切面是关注点的模块化,如日志、事务控制等。在Spring中,切面可以是注解或XML配置的类。 - **连接点(Join Point)**:程序执行过程中的特定点,如方法调用、...

Global site tag (gtag.js) - Google Analytics