Spring AOP

Spring AOP通过面向切面技术将与业务无关却为业务模块所共用的逻辑代码封装起来,以提高代码的复用率,降低模块之间的耦合度。Spring AOP的主要应用场景为权限认证、日志、事务等。
Spring AOP的两种代理方式
Spring提供了JDK和CGLIB两种方式来生成代理对象。Spring默认的代理对象生成策略:如果是目标类接口,则使用JDK动态代理技术,否则使用CGLib动态代理技术。
Cglib动态代理和JDK动态代理的区别:JDK只能为接口创建代理实例,而对于没有通过接口定义业务方法的类,则只能通过CGLib创建动态代理来实现。
Spring AOP的通知类型
Spring AOP有5种通知类型,分别为前置通知、后置通知、成功通知、异常通知、环绕通知。
Spring AOP的代码实现
在Spring中,AOP的使用比较简单,通过@Aspect注解声明一个切面,通过@Pointcut定义需要拦截的方法,然后用@Before、@AfterReturning、@Around分别实现前置通知、后置通知和环绕通知要执行的方法。
注意:执行顺序为环绕前置通知、前置通知、调用的方法、环绕后置通知、后置通知
注意:
1.用代码实现AOP功能时需要将@Component和@Aspect一起使用修饰切面类,在springboot的入口类用@EnableAspectJAutoProxy开启AOP功能
2.只有访问IOC容器中的JavaBean的方法,才会被拦截,实现AOP功能;通过new创建实例,调用实例方法并不会被拦截。

你可能感兴趣的:(Spring,spring,java,后端)