1.要启用基于@AspectJ风格的切面声明,需要进行以下的配置:
<!-- 启用@AspectJ风格的切面声明 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
<!-- 通过注解定义bean。默认同时也通过注解自动注入 -->
<context:component-scan base-package="com.cjm"/>
2.基于@AspectJ风格的切面声明;
/**
* 声明本类为一个切面
*/
@Component
@Aspect
public class MyAspectJ {
/**
* 声明一个切入点(包括切入点表达式和切入点签名)
*/
@Pointcut("execution(* com.cjm.model..*.*(..))")
public void pointcut1(){}
/**
* 声明一个前置通知
*/
@Before("pointcut1()")
public void beforeAdvide(JoinPoint point){
System.out.println("触发了前置通知!");
}
/**
* 声明一个后置通知
*/
@After("pointcut1()")
public void afterAdvie(JoinPoint point){
System.out.println("触发了后置通知,抛出异常也会被触发!");
}
/**
* 声明一个返回后通知
*/
@AfterReturning(pointcut="pointcut1()", returning="ret")
public void afterReturningAdvice(JoinPoint point, Object ret){
System.out.println("触发了返回后通知,抛出异常时不被触发,返回值为:" + ret);
}
/**
* 声明一个异常通知
*/
@AfterThrowing(pointcut="pointcut1()", throwing="throwing")
public void afterThrowsAdvice(JoinPoint point, RuntimeException throwing){
System.out.println("触发了异常通知,抛出了RuntimeException异常!");
}
/**
* 声明一个环绕通知
*/
@Around("pointcut1()")
public Object aroundAdvice(ProceedingJoinPoint point)throws Throwable{
System.out.println("触发了环绕通知 开始");
Object o = point.proceed();
System.out.println("触发了环绕通知 结束");
return o;
}
}
转载:http://www.cnblogs.com/aurawing/articles/1887014.html
分享到:
相关推荐
例如,我们创建一个简单的日志记录切面: ```java @Aspect public class LoggingAspect { @Pointcut("execution(* com.example.service.*.*(..))") public void allServiceMethods() {} @Before(...
Spring4 In Action-4.2-@AspectJ-切面,Spring4 In Action-4.2-@AspectJ-切面。Spring4 In Action-4.2-@AspectJ-切面
通过上述步骤,你就可以在Spring应用中使用@AspectJ进行面向切面的编程了。这个实例中的"Spring_aop_aspectj"可能包含了示例代码,你可以下载并运行,以加深理解。同时,阅读博客文章(链接已给出)会提供更详细的...
为了使@AspectJ切面生效,需要在Spring配置中启用@AspectJ支持,并扫描包含切面的包。这通常在XML配置中完成: ```xml <aop:aspectj-autoproxy /> ``` 或者在Java配置中: ```java @Configuration @...
@AspectJ是Spring支持的一种AOP实现,它使用注解来定义切面,简化了配置过程。 创建一个Spring AOP应用的第一步是设置项目结构。在给定的压缩包文件中,我们可能看到一个名为"src"的目录,通常这个目录包含项目的源...
例如,下面的代码展示了如何使用@AspectJ定义一个简单的切面: ```java @Aspect public class LoggingAspect { @Before("execution(* com.example.service.*.*(..))") public void logBefore(JoinPoint joinPoint...
@AspectJ是一种基于Java语言的AOP实现,允许在切面类上直接使用注解定义切点和通知。这种方式更加简洁和直观。例如: ```java @Aspect @Component public class LoggingAspect { @Before("execution(* ...
所以本系列就结合案例详细介绍@Aspect方式的切面的各种用法,力求覆盖日常开发中的各种场景。 上文我们已讲完五种通知Advice注解,所以从本文开始介绍@Pointcut切点表达式,虽然Spring AOP的切点表达式尚未 全部...
Spring 框架是Java开发中的一个核心组件,它提供了许多功能,其中之一就是面向切面编程(AOP)。AOP是一种编程范式,允许开发者将关注点从业务逻辑中分离出来,比如日志记录、事务管理等。在Spring中,我们可以使用...
总的来说,这个压缩包提供的组件能够帮助开发者构建一个基于Spring的、利用AspectJ进行切面编程的Java应用。通过Spring的依赖注入和AOP,我们可以编写出更加模块化、易于维护的代码,同时,Log4j则提供了方便的日志...
- 定义切面:创建一个类作为切面,定义通知方法,并使用注解@Aspect来标识。 - 配置通知:使用@Before、@After、@AfterReturning、@AfterThrowing、@Around注解来指定通知的执行时机。 - 配置切入点:使用@...
这行配置会告诉 Spring 使用 AspectJ 的代理模式来处理切面。 最后,我们需要确保在运行时 weaving(编织)切面。有两种方式实现 weaving:编译时 weaving 和运行时 weaving。编译时 weaving 可以使用 AspectJ ...
在"day39-Spring 06-Spring的AOP:带有切点的切面"这个主题中,我们将深入探讨如何在Spring中实现带有切点的切面,以及它们如何与源码和工具结合使用。 首先,理解AOP的基本概念非常重要。AOP的核心是切面(Aspect...
1. 定义切面:使用`@Aspect`注解声明一个类为切面,然后在这个类中定义切点和通知。 2. 定义切点:切点是程序执行中的特定点,可以使用正则表达式或者预定义的切入点表达式来定义。 3. 定义通知:通知是在切点匹配时...
- **创建切面类**:在AspectJ中,切面是一个包含通知的方法的类,通常会使用`@Aspect`注解。 - **定义切入点**:使用`@Pointcut`定义感兴趣的连接点(Join Point),切入点表达式由方法名和一组匹配规则组成。 - ...
AspectJ是一个成熟的AOP框架,Spring在其AOP实现中整合了AspectJ,提供了更强大的面向切面编程能力。本篇文章将详细探讨在Spring 2.5中使用AspectJ进行AOP开发所需的知识点。 首先,我们需要理解AOP的核心概念: 1....