Spring增强类型介绍
Spring中提供的增强类包含两类1.Spring定义的扩展增强 2.aoppalliance定义的扩展增强。
其中Spring提供的扩展增强主要针对于方法即方法级增强,aoppalliace即提供了方法级的增强(MethodInterceptor)也提供引介增强(IntroductionInterceptor),引介增强可以给类添加属性和行为所以引介增强属于类级别
增强的类型
1.前置增强(顾名思义就是在目标方法执行前织入增强。BeforeAdvice表示前置增强。属于Spring提供的增强所以属于方法级增强。MethodBeforeAdvice为目前可用前置增强。)
2.后置增强(顾名思义就是在目标方法执行后织入增强。AfterReturningAdvice表示后置增强。属于Spring提供的增强所以属于方法级增强。)
3.环绕增强(MethodInterceptor是前置增强和后置增强的综合,在目标方法执行前后都织入增强。可以用该增强替换前置增强和后置增强)
4.异常抛出增强(ThrowsAdvice表示在目标方法抛出异常时实施增强)
5.引介增强(IntroductionInterceptor在目标类中添加属性和行为)
Spring依赖注入
平常的java开发中,程序员在某个类中需要依赖其它类的方法,通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理。
spring提出了依赖注入的思想,即依赖不由程序员控制,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做。
Spring依赖注入的几种方式
1.Set方法注入(Set方法注入是最简单、最常用的注入方式。)
2.构造器注入(构造方法注入是指带有参数的构造函数注入)
3.静态工厂的方法注入(静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象。为了使用Spring的依赖注入IOC,我们不直接通过"工程类.静态方法()"来获取对象,而是依然通过spring注入的形式获取)
4.实例工厂的方法注入(实例工厂的意思是获取对象实例的方法不是静态的,所以你需要首先new工厂类,再调用普通的实例方法)
Spring IoC注解实现方式
Spring AOP 常用术语
常用注解
- @aspect 定义切面
- @pointcut 定义切点
- @before 标注Before Advice定义所在的方法
- @afterreturning 标注After Returning Advice定义所在的方法
- @afterthrowing 标注After Throwing Advice定义所在的方法
- @after 标注 After(Finally) Advice定义所在的方法
- @around 标注Around Advice定义所在的方法