spring6-AOP面向切面编程
在Spring框架中,AOP(Aspect-Oriented Programming)允许我们创建跨越系统多个模块的横切关注点,例如日志记录、性能监控、事务管理等。以下是一个使用Spring AOP的简单示例:
- 添加依赖到你的
pom.xml
:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
</dependencies>
- 创建一个切面类(Aspect):
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;
@Aspect
@Component
public class LoggingAspect {
@Before("execution(* com.example.service.*.*(..))")
public void logBeforeServiceCall() {
System.out.println("Before service method call");
}
}
在这个例子中,@Before
注解指定了在com.example.service
包下所有方法执行前,执行logBeforeServiceCall
方法。
- 确保你的Spring Boot应用启动类上有@EnableAspectJAutoProxy注解启用AOP:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@SpringBootApplication
@EnableAspectJAutoProxy
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
当你运行这个Spring Boot应用时,每当com.example.service
包下的任何方法被调用,你会在控制台看到 "Before service method call" 的打印。这就是AOP的基本用法。
评论已关闭