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...");

   }

   

}