`
archerfrank
  • 浏览: 13658 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring AOP aspectj的使用

阅读更多
使用spring2.x的aop aspectj的首先需要添加asm-2.2.2.jar、asm-commons-2.2.2.jar和asm-util-2.2.2.jar,还有aspectjrt.jar和aspectjweaver.jar类包的路径之中。如果在tomcat中使用,还需要spring-tomcat-weaver.jar。

之后再配置文件中只要加入以下代码,就可以使用annotations,比较便捷的使用aop了。
<aop:aspectj-autoproxy/>


一个简单的log aop类

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class AOPServiceLogger {
	public static final String ServiceEDP = "execution( * org.aaa.bbb.service.implement..*.*(..))";
	public static final String DAOEDP = "execution( * org.aaa.bbb.dao.hibernate..*.*(..))";
	private SRLogger log = SRLogger.getLogger(AOPServiceLogger.class);

	@Around(ServiceEDP)
	// spring中Around通知
	public Object logAround(ProceedingJoinPoint joinPoint) {
		log.info("Enter Service method : " + joinPoint.getSignature().getName() + " in class " +joinPoint.getTarget());
		Object[] args = joinPoint.getArgs();
		Object obj = null;
		try {
			obj = joinPoint.proceed(args);
		} catch (Throwable e) {
			log.error(e);
			e.printStackTrace();
		}
		log.info("Exit Service method : " + joinPoint.getSignature().getName() + " in class " +joinPoint.getTarget());
		return obj;
	}
	
	@Around(DAOEDP)
	// spring中Around通知
	public Object logAroundDAO(ProceedingJoinPoint joinPoint) {
		log.info("Enter DAO method : " + joinPoint.getSignature().getName() + " in class " +joinPoint.getTarget());
		Object[] args = joinPoint.getArgs();
		Object obj = null;
		try {
			obj = joinPoint.proceed(args);
		} catch (Throwable e) {
			log.error(e);
			e.printStackTrace();
		}
		log.info("Exit DAO method : " + joinPoint.getSignature().getName() + " in class " +joinPoint.getTarget());
		return obj;
	}
}

分享到:
评论

相关推荐

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

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

    jar包---Spring Aop AspectJ新增包.rar

    Spring AOP的实现主要有两种方式:一种是基于代理的AOP(Proxy-based AOP),另一种是基于AspectJ的AOP(AspectJ-based AOP)。基于代理的AOP是Spring默认的方式,它主要通过JDK动态代理或者CGLIB字节码生成技术来...

    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

    aspectj的jar spring使用aop需要的jar

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

    SpringAOP+AspectJ

    **Spring AOP与AspectJ详解** 在现代软件开发中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种强大的设计模式,它允许我们分离关注点,将横切关注点(如日志、事务管理、权限控制等)与核心业务...

    Spring AOP @AspectJ 入门实例

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

    Spring AOP + AspectJ annotation example

    总结来说,Spring AOP与AspectJ注解的结合使用是Java开发中的强大工具,它们提供了一种优雅的方式来管理横切关注点,提高了代码的可读性和可维护性。通过学习和熟练掌握这一技术,开发者能够更好地应对复杂的企业级...

    Spring AOP 概念理解及@AspectJ支持

    **Spring AOP 概念理解** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它允许我们通过...理解和熟练运用Spring AOP及其@AspectJ注解是每个Spring开发者必备的技能之一。

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

    4. **启用注解驱动的AOP**: 在Spring配置中,使用`@EnableAspectJAutoProxy`注解开启对AspectJ注解的支持。 例如: ```java @Aspect @Component public class MyAspect { @Before("execution(* ...

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

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

    Spring AOP 16道面试题及答案.docx

    Spring支持两种AOP的实现方式:Spring AspectJ注解风格和Spring XML配置风格。使用AspectJ注解风格是最常见的,它允许开发者直接在方法上使用注解来定义切面。 Spring AOP中有五种不同类型的的通知(Advice): 1....

    Spring 使用AspectJ 实现 AOP

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

    征服Spring AOP—— @AspectJ

    @AspectJ是Spring AOP的一种注解驱动方式,它极大地简化了AOP的使用。本篇文章将深入探讨@AspectJ的使用方法和背后的原理。 首先,我们需要理解面向切面编程(AOP)的基本概念。AOP是一种编程范式,它允许开发者将...

    Spring2.5使用AOP需要的aspectJ

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

    简单spring aop 例子

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...

    Spring AOP + AspectJ in XML 配置示例

    在IT行业中,Spring框架...总结来说,Spring AOP和AspectJ的结合使用,借助XML配置,为开发者提供了一种强大而灵活的方式去处理横切关注点。通过学习并掌握这一技术,开发者可以写出更加模块化、易于维护的企业级应用。

    @AspectJ配置Spring AOP,demo

    `springAOP2`可能是一个包含具体示例代码的目录。`基于@AspectJ配置Spring AOP之一 - 飞扬部落编程仓库-专注编程,网站,专业技术.htm`和其关联的`_files`目录可能包含了一个详细的教程或演示如何配置和运行@AspectJ的...

    spring和aspectj的aop实验

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

    Spring Aop四个依赖的Jar包

    这个组件使得Spring AOP能够与未修改的第三方库无缝集成,因为Spring AOP可以利用AspectJ Weaver来处理那些不支持代理的对象。 3. **cglib-nodep-2.1_3.jar**:CGLIB(Code Generation Library)是一个高性能的代码...

    spring AOP 实例(@AspectJ)

    一个基于@AspectJ的spring2.0 AOP应用实例,很小很简单,没有任何额外信息,最适合AOP入门学习。使用log4j打印信息。把项目直接import进myeclipse就可以使用啦......

Global site tag (gtag.js) - Google Analytics