springboot 如何使用aop
时间: 2024-01-20 07:48:48 浏览: 90
Spring Boot 提供了很好的支持来使用 AOP。你可以按照以下步骤来使用 AOP:
1. 添加 AOP 依赖
在 pom.xml 文件中添加 Spring AOP 依赖:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
```
2. 创建切面类
切面类是一个普通的 Java 类,其中包含了定义切点和通知的代码。你可以使用 @Aspect 注解来标记一个切面类,使用 @Pointcut 注解来定义一个切点,使用 @Before、@After、@Around 等注解来定义通知。
这里是一个简单的示例:
```
@Aspect
@Component
public class LoggingAspect {
@Pointcut("execution(public * com.example.demo.*.*(..))")
public void logPointcut() {}
@Before("logPointcut()")
public void beforeAdvice() {
System.out.println("Before advice is executed.");
}
@After("logPointcut()")
public void afterAdvice() {
System.out.println("After advice is executed.");
}
@Around("logPointcut()")
public Object aroundAdvice(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("Around advice is executed before method.");
Object result = joinPoint.proceed();
System.out.println("Around advice is executed after method.");
return result;
}
}
```
在上面的代码中,@Pointcut 注解定义了一个切点,它匹配了 com.example.demo 包下的所有公共方法。@Before、@After、@Around 注解分别定义了前置通知、后置通知和环绕通知。
3. 启用 AOP
在 Spring Boot 应用中启用 AOP 很简单,只需要在启动类上添加 @EnableAspectJAutoProxy 注解即可:
```
@SpringBootApplication
@EnableAspectJAutoProxy
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
这样,AOP 就启用了。你可以在应用中使用 @Autowired 注解来注入切面类,然后它就会自动执行切点和通知。