spring-传统AOP

Spring传统AOP

 

AOP的增强类型

 

AOP联盟定义了Advice(org.aopalliance.aop.Interface.Advice)

五类(目标类方法的连接点):

1、  前置通知(org.springframework.aop.MethodBeforeAdvice)-----------执行前增强

2、  后置通知(org.springframework.aop.AfterRetuiningAdvice)-----------执行后增强

3、  环绕通知(org.aopalliance.intercept.MethodInterceptor)-----------执行前后增强

4、  异常抛出通知(org.springframework.aop.ThrowsAdvice)-----------抛出异常后增强

5、 异常抛出通知(org.springframework.aop.IntroductionInterceptor)-----------在目标类中添加一些新的方法和属性

 

AOP切面类型

 

Advisor:一般切面

PointcutAdvisor:代表有切点的切面(拦截指定目标类以及方法)

         DefaultPointcutAdvisor:最常用切面类型,可以组合定义切面(Pointcut、Advice)

         jdkRegexpMethodPointcut:构造正则表达式切点

IntroductionAdvisor:代表引介切面,针对引介通知而使用切面

 

Advisor切面实现

 

1、  引入spring核心包之外,还需要引入aoplliance包和spring-aop包

2、  创建接口类和接口实现类

3、  创建切面类实现对应的接口

4、  创建spring配置文件,配置通知

 

 

<bean id=”接口实现类的名称” class=”接口实现类的全路径”/>

<bean id=”通知的名称” class=”通知的切面实现类的全路径”/>

<bean id=”代理对象的名称” class=”切面方法的全路径”>

<property name=”target” ref=”接口实现类的名称”/>---------------配置目标类

<property name=”proxyInterfaces” value=”接口的全路径”/>---------------配置实现接口

<property name=”interceptorNames” value =”通知的名称”/>---------------配置拦截的类

</bean>

其他属性:

 

 

5、测试

         @RunWith(SpringJunit4ClassRunner.class)

         @ContextConfiguration(“classpath:配置文件名称”)

 

Advisor带有切入点切面实现

 

额外配置

 

 

posted @ 2018-05-22 03:06  floatthy  阅读(120)  评论(0编辑  收藏  举报