Spring AOP【Aspect Oriented Programming】面向切面编程,它是一种可以在不修改原来的核心代码的情况下“动态统一”的 给程序增强的一种技术。批量对spring容器中的bean的方法做增强,并且这种增强不会与原来的方法中的代码耦合。
aop快速入门举例:
1、要求:service包下的所有类的所有方法在调用前都输出:hello aop
2、 pom.xml中添加相关依赖:
<!--ioc相关的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
<!--aop相关的依赖-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.7</version>
</dependency>
3、相关bean注入到spring容器中:
(1)、开启组件扫描:
<context:component-scan base-package="com.package"></context:component-scan>
(2)、开启aop注解支持:
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
4、创建AOP切面 业务类,通过切点表达式实现AOP:
@Component
@Aspect
public class MyAspect {
@Pointcut("execution(* com.package.service.*.*(..))")//切点表达式
public void pc(){//此方法是 切点pt():确定对com.package.service下的所有类的 所有方法 增强
}
@Before("pc()")
public void methodBefore(){//此方法:标注使用哪个切点;增强的业务
System.out.println("hello aop...");
}
}