SpringBoot配置面向切面编程(SpringBoot项目配置5)
SpringBoot支持Spring中的注解AOP配置,而且配置简单只需要几步即可
1.导入SpringBoot与AOP集成jar包
在pom.xml文件中加入
<!--spring boot与AOP集成jar包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
2.AOP注解
@Aspect用在类上,代表这个类是一个切面
@Before用在方法上代表这个方法是一个前置通知
@After用在方法上代表这个方法是一个后置通知
@Around用在方法上代表这个方法是一个环绕通知
@Configuration用于定义配置类
3.开发AOP类和方法
(1)开发一个前置AOP
@Aspect
@Configuration
public class BeforeAspect {
/*
* 前置通知方法
* */
@Before("execution(* com.baizhi.service.*.*(..))")
public void before(JoinPoint joinPoint){
System.out.println("目标方法执行之前执行");
}
}
(2)开发一个后置AOP
@Aspect
@Configuration
public class AfterAspect {
@After("execution(* com.baizhi.service.*.*(..))")
public void before(JoinPoint joinPoint){
System.out.println("目标方法执行之后执行");
}
}
(3)开发一个环绕AOP
@Aspect
@Configuration
public class AroundAspect {
@Around("execution(* com.baizhi.service.*.*(..))")
public Object around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
System.out.println("around before");
Object proceed = proceedingJoinPoint.proceed();
System.out.println("方法名:"+proceedingJoinPoint.getSignature().getName());
System.out.println("目标参数:"+proceedingJoinPoint.getArgs());
System.out.println("目标对象:"+proceedingJoinPoint.getTarget());
System.out.println("目标对象:"+proceedingJoinPoint.getThis());
System.out.println("around after");
return proceed;
}
}