`

Spring Aspectj的使用

 
阅读更多
Applicationcontext.xml代码 复制代码 收藏代码
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

<!--启动对@Aspect注解的支持 -->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<!--引入切面类-->
<bean id="myInterceptor" class="cn.itcast.service.MyInterceptor"></bean>

 

Myinterceptor代码 复制代码 收藏代码

 

package cn.itcast.service;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

//这个注解用来说明这个类是切面
@Aspect
public class MyInterceptor {

	//定义切入点用来定义拦截的方法
	@Pointcut("execution (* cn.itcast.service.impl..*.*(..))")
	private void anyMethod(){}//采用方法声明一个切入点	

	@Before("anyMethod()")//定义前置通知
	public void doAccessCheck() {
		System.out.println("前置通知");
	}	
	
	@After("anyMethod()")
	public void doAfter()//定义后置通知
	{
		System.out.println("最终通知");
	}

	@AfterReturning(pointcut="anyMethod()")
	public void doAfterReturning()//定义后置通知
	{
		System.out.println("后置通知");
	}
	//注意:如果出现异常则前置通知和最终通知执行,后置通知则不执行
	
	@AfterThrowing(pointcut="anyMethod()", throwing="ex")//定义异常通知
    public void doExceptionAction(Exception ex) {
	System.out.println("异常通知");
	}

	@Around("anyMethod()")
	//定义环绕通知,方法中的参数是固定的
	public Object doAround(ProceedingJoinPoint pjp) throws Throwable
	{
		System.out.println("环绕通知之前");
		Object result=pjp.proceed();
		System.out.println("环绕通知之后");
		return result;
	}
	
	
}

 

分享到:
评论

相关推荐

    spring aspectj.jar

    在Spring中使用AspectJ,我们通常有两种方式:一种是使用AspectJ的编译时或加载时织入,这需要配置AspectJ的编译器或加载器;另一种是通过Spring的注解驱动的AOP,它利用AspectJ的编译器或 weaving工具来生成代理类...

    Spring AspectJ的学习一

    在实际开发中,理解并掌握AspectJ与Spring的结合使用,能够帮助我们更好地设计和实现复杂的业务逻辑,提高代码的可读性和可维护性。对于希望深入理解和应用AOP概念的开发者来说,AspectJ是一个不可或缺的工具。

    Spring 使用AspectJ 实现 AOP之前置通知小例子

    标题提到的"Spring 使用AspectJ 实现 AOP之前置通知小例子",指的是利用AspectJ在Spring中实现AOP的一种特定类型的通知——前置通知(Before advice)。前置通知在目标方法执行之前运行,但不会阻止方法的执行。这种...

    spring基于AspectJ实现事务控制

    这通常涉及到添加`&lt;aop:aspectj-autoproxy&gt;`标签,它指示Spring使用AspectJ代理来创建bean。 ```xml &lt;aop:aspectj-autoproxy /&gt; ``` 2. **定义事务切面**:创建一个包含事务处理逻辑的切面类,该类通常会包含一...

    Spring AOP @AspectJ 入门实例

    本实例将带你深入理解并实践Spring AOP与@AspectJ的结合使用。 首先,了解AOP的基本概念。面向切面编程是一种编程范式,它允许程序员定义“切面”,即跨越多个对象的行为或责任。这些切面可以包含业务逻辑、日志、...

    spring AspectJ aop学习

    为了在Spring应用中使用AspectJ,我们需要在配置文件中启用AspectJ自动代理,并添加相关的依赖。例如,在Spring XML配置中: ```xml &lt;aop:aspectj-autoproxy /&gt; ``` 同时,在Maven或Gradle构建工具中引入AspectJ...

    aspectj的jar spring使用aop需要的jar

    综上所述,为了在Spring中利用AspectJ的全部功能,你需要将对应的AspectJ JAR文件加入到项目类路径中,然后按照Spring文档或AspectJ文档的指导配置和使用AOP。这将使你的代码更加模块化,降低耦合,提高可维护性。

    Spring 使用AspectJ 实现 AOP(基于xml文件、基于注解)

    Spring支持两种方式集成AspectJ:编译时织入(使用ajc编译器)和运行时织入(使用Spring代理)。运行时织入更灵活,不需要改变原有的编译过程,但可能性能稍逊。 **五、AspectJ的切点表达式** AspectJ提供了一种...

    Spring的AOP依赖包-AspectJ

    在Spring4.3.7版本中,Spring支持使用AspectJ进行AOP编程。引入AspectJ的依赖包,可以使用AspectJ的表达式语言(Pointcut Expression Language, PEL)来精确地定义切点。例如,`execution(* com.example.service.*(....

    Spring 使用AspectJ 实现 AOP

    在Spring中,我们可以使用AspectJ来实现AOP,AspectJ是一个强大的AOP框架,它可以与Spring无缝集成,提供更细粒度的控制。 首先,让我们了解一下AOP中的通知类型: 1. **前置通知**(Before Advice):在目标方法...

    Spring2.5使用AOP需要的aspectJ

    本篇文章将详细探讨在Spring 2.5中使用AspectJ进行AOP开发所需的知识点。 首先,我们需要理解AOP的核心概念: 1. **切面(Aspect)**:切面是关注点的模块化,它封装了多个相关方法,这些方法在程序的不同点执行,...

    spring和aspectj的aop实验

    标题"spring和aspectj的aop实验"表明我们将探讨如何在Spring中使用AspectJ进行AOP实践。这通常涉及到创建切面、定义通知、配置织入策略以及测试其效果。 1. **什么是AOP** AOP的核心概念是切面(Aspect),它封装...

    Spring AOP的AspectJ支持jar包

    Spring AOP的AspectJ支持jar包; 包括: com.springsource.net.sf.cglib-2.2.0.jar com.srpingsource.org.aopalliance-1.0.0.jar com.srpingsource.org.aspectj.weaver-1.68.RELEASE.jar

    Spring @AspectJ 实现AOP 入门例子

    要开始使用@AspectJ,我们需要导入相关的Spring库,例如`spring-aspects.jar`。然后在Java代码中,我们可以创建一个带有`@Aspect`注解的类来定义切面。这个类可以包含一个或多个方法,这些方法被称为通知(advisors...

    Spring AOP AspectJ使用及配置过程解析

    Spring AOP AspectJ 使用及配置过程解析 本文主要介绍了 Spring AOP AspectJ 的使用及配置过程解析,通过示例代码介绍了非常详细,对大家的学习或者工作具有一定的参考学习价值。 AspectJ 简介 AspectJ 是一个...

    spring中使用AspectJ注解相关类库文件

    要在 Spring 应用中使用 AspectJ 注解, 必须在 classpath 下包含 AspectJ 类库: aopalliance.jar、aspectj.weaver.jar 和 spring-aspects.jar等jar包,文件已打包上传。

    spring aspectj-1.9.0.jar包

    aspectj.jar的1.9.0版本,下载后粘贴到所属的lib文件下即可

    spring源码导入所需aspectj包

    在Spring框架中,AspectJ是一种...通过以上步骤,你可以在Spring应用中成功地导入和使用AspectJ,实现更灵活、模块化的代码结构,提高代码复用性和可维护性。理解并熟练运用AOP是提升Spring应用开发能力的关键之一。

    详解在Spring中如何使用AspectJ来实现AOP

    2. Spring中使用AspectJ:在Spring框架中,可以使用AspectJ来实现AOP,通过引入AspectJ相关类库,使用AspectJ注解来描述切点和增强,并使用Spring的AOP支持来织入增强。 3. 编程方式:使用AspectJ来实现AOP,需要...

    AspectJ in Action: Enterprise AOP with Spring Applications

    6. **技术整合:**演示了如何将AspectJ与其他关键技术(如Spring、Hibernate、Swing、JDBC等)结合使用,以简化复杂的企业级应用开发。 7. **AspectJ 6新特性:**全面覆盖AspectJ 6的最新特性,包括新的语言特性、...

Global site tag (gtag.js) - Google Analytics