SpringBoot 实现AOP的简单测试demo

1:定义一个切点类  aop.class   添加 @Aspect注解 和@Componet注解

 

2: 编写 Pointcut 注解+方法   before注解+方法   After注解+方法  Around注解+方法    (这四个方法分别对应各自的功能实现)

 

@Aspect
@Component
public class aop {

    @Pointcut("execution(* com.example.demo.service.*.*(..))") //声明一个切点
    public void checkUser(){
    }

    @Before("checkUser()")  //在方法执行前切入
    public void beforeCheck(){
        System.out.println("前置方法:我在方法前面");
    }

    @After("checkUser()")   //在方法执行后切入
    public void after() {
        System.out.println("后置通知:方法正常结束了");
    }

    @Around("checkUser()")  //环绕整个方法的前后
    public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
        System.out.println("进入方法前---环绕通知");
        Object o = pjp.proceed();
        System.out.println("退出方法后---环绕通知");
        return o;
    }
}

 

 

 

3:解释上方代码

4:执行结果:

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Spring Boot使用AOP(Aspect-Oriented Programming)可以帮助我们实现一些横切关注点的功能,日志记录、性能监控、事务管理等。下面是使用AOP的步骤: 1. 添加依赖:在`pom.xml`文件添加`spring-boot-starter-aop`依赖。 2. 创建切面类:使用`@Aspect`注解标识一个切面类,并在类上添加其他相关注解,如`@Component`。 3. 定义切点:使用`@Pointcut`注解定义一个切点,指定需要被拦截的方法。 4. 编写通知方法:使用`@Before`、`@After`、`@Around`等注解编写通知方法,实现在目标方法执行前、后或环绕时执行的逻辑。 5. 配置切面:在配置类使用`@EnableAspectJAutoProxy`注解开启AOP功能。 6. 测试AOP:编写需要被拦截的业务方法,并验证AOP的拦截效果。 下面是一个简单的示例: ```java // 切面类 @Aspect @Component public class LoggingAspect { @Pointcut("execution(* com.example.demo.service.*.*(..))") public void serviceMethods() { } @Before("serviceMethods()") public void beforeAdvice(JoinPoint joinPoint) { System.out.println("Before method: " + joinPoint.getSignature().getName()); } } // 配置类 @Configuration @EnableAspectJAutoProxy public class AopConfig { } // 测试类 @Service public class UserService { public void addUser(String username) { System.out.println("Adding user: " + username); } } // 启动类 @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 在上述示例,`LoggingAspect`类是切面类,使用`@Before`注解定义了一个前置通知方法,在目标方法执行前输出日志信息。`AopConfig`类是配置类,使用`@EnableAspectJAutoProxy`注解开启AOP。`UserService`类是一个被拦截的业务类,调用其方法时会触发切面逻辑。 这只是一个简单的示例,实际使用还可以结合其他功能和注解,如`@AfterReturning`、`@AfterThrowing`、`@Around`等,实现更复杂的AOP功能。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值