package com.bjsxt.aop;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LogInterceptor {
@Pointcut("execution(public * com.bjsxt.service..*.[color=red]add[/color](..))")
public void myMethod(){};
@[color=red]Before[/color]("myMethod()")
public void before() {
System.out.println("method before");
}
@[color=red]Around[/color]("myMethod()")
public void aroundMethod(ProceedingJoinPoint pjp) throws Throwable {
System.out.println("method around start");
pjp.[color=red]proceed[/color]();
System.out.println("method around end");
}
@After("myMethod()")
public void afterMethod() throws Throwable {
System.out.println("method after");
}
}
输出的结果为
method before
method around start
user saved!
method after
method around end
当调用 add 方法时,因为 Pointcut 的配置,会先执行Before 的声明下方法,然后再执行,Around 声明下的方法,在该方法里,执行到proceed 该字段时,回去调用 add的原方法,然后再到 after 方法里,再到proceed 字段下面的内容
分享到:
相关推荐
2. ch20_aop_annotation:这部分内容可能是关于使用注解来定义和实现切面的教程。 3. ch18_aoptest:可能是一些AOP的测试案例,用于演示如何在实际应用中使用和测试AOP功能。 4. ch18_aop:可能是关于AOP基础理论或...
在本资料"Spring_Annotation_AOP"中,我们将深入探讨Spring框架如何利用注解实现AOP,以及其背后的原理和实践应用。 面向切面编程(AOP)是一种编程范式,旨在提高代码的可维护性和可重用性,通过将关注点分离,...
本实践项目以"Spring_aop_annotation.zip"为载体,展示了如何利用注解在Spring框架中实现AOP的功能。下面将详细阐述该项目中的关键知识点。 一、Spring AOP概念 AOP是Aspect Oriented Programming的缩写,它是一种...
5. **<aop:args>,<aop:within>,<aop:target>,<aop:annotation>**:在XML配置中,可以使用这些元素来辅助定义切入点,功能与注解模式中的注解类似。 **五、实例演示** 在提供的压缩包文件中,可能包含了创建...
这篇“学习Spring笔记_AOP_Annotation实现和XML实现”主要探讨了如何在Spring中利用注解和XML配置来实现AOP的概念。 AOP,全称Aspect-Oriented Programming,是一种编程范式,旨在将关注点分离,让开发者可以更专注...
下面将详细阐述`@Before`注解的使用方法及其背后的原理。 **1. AOP的基本概念** AOP是一种编程范式,它将关注点模块化为独立的“切面”,每个切面封装了特定的职责,如日志记录、安全检查或事务处理。通过AOP,我们...
本实例将详细探讨如何通过注解(Annotation)来实现Spring AOP的方法拦截。 一、Spring AOP基础 Spring AOP是Spring框架的一部分,它提供了一种在运行时织入横切关注点(如日志、事务管理等)到目标对象的能力。AOP...
- **XML配置的AOP**:在Spring配置文件中定义<aop:config>元素,使用<aop:aspect>定义切面,<aop:before>、<aop:after>等定义通知,<aop:pointcut>定义切入点。 **4. 应用示例** 假设我们有一个`UserService`,需要...
"day03_eesy_03springAOP"直指Spring AOP的核心概念。AOP是Spring的重要特性,它允许开发者定义“切面”,这些切面可以插入到代码的特定点(称为“连接点”),如方法调用前或后。这使得我们可以将关注点如日志、...
Spring 2.0引入了基于注解的AOP配置,极大地简化了AOP的使用。这篇博客文章将探讨如何在Spring 2.0中使用AOP实例,特别是通过注解来实现。 首先,我们需要了解AOP的基本概念。AOP的核心是切面(Aspect),它封装了...
在Spring框架中,依赖注入(Inversion of Control, IoC)和面向切面编程(Aspect Oriented Programming, AOP)是两大核心特性。本篇将深入探讨如何通过注解方式来模拟Spring的这两种机制,帮助你理解其底层原理。 #...
### Spring_Hibernate_JAVAX_Annotation 注解详解 #### 一、概述 本文将详细介绍与SSH(Spring+Struts+Hibernate)开发相关的注解。这些注解覆盖了多个领域,如AspectJ、Batch处理、Spring框架本身的功能(包括...
Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的一个重要组成部分。它提供了一种模块化和声明式的方式来处理横切关注点,如事务管理、日志记录、性能监控等,这些关注点通常会分散在...
SpringBoot结合AspectJ实现SpringAOP拦截指定方法的知识点涵盖了多个方面,这包括Spring AOP的基本概念、SpringBoot的应用、切点(Pointcut)与通知(Advice)的定义、自定义注解以及AspectJ的使用。以下是这些知识...
3. **Spring_demo_05_aop_annotation** - 这个示例可能涉及使用注解进行AOP配置,比如@Aspect、@Before、@After等,这些注解使得AOP的使用更加直观。 4. **Spring_demo_01** - 基础入门示例,可能包含Spring的基本...
在微服务流行的当下,在使用SpringCloud/Springboot框架开发中,AOP使用的非常广泛,尤其是@Aspect注解方式当属最流行的,不止功能强大,性能也很优秀,还很舒心!所以本系列就结合案例详细介绍@Aspect方式的切面的...
这个"aop_log.rar_spring aop"的压缩包可能包含了一个示例项目,演示了如何在Spring环境中集成和使用AOP进行日志管理。通过研究和学习这个例子,开发者可以更好地理解和掌握Spring AOP在日志记录方面的应用。
本文将详细介绍如何在Spring中使用AOP,特别是通过注解的方式。 首先,我们需要理解AOP的基本概念。AOP的核心是切面(Aspect),它封装了特定的关注点,如日志记录或事务管理。切点(Pointcut)定义了在何时应用...
以上就是Spring AOP的基本用法。在实际项目中,你可以根据需求定义不同的通知类型,如`@After`、`@Around`、`@AfterReturning`和`@AfterThrowing`,以及复杂的切入点表达式。通过这些,你可以实现更精细的控制,如只...