一.AOP简介:AOP(Aspect Oriented Programming)面向方面编程,是OOP的延续,也是GOF四人组设计模式的一种扩展.主要是处理切面和将程序中涉及的公共问题集中解决(如:事物处理)
二.相关概念:
1.连接点(Joinpoint):指定的点(方法)/目标方法 //切面上的一个接口
2.切入点(Pointcut):连接点的集合/许多方法的集合
3.通知(Advice):在切入点上执行的动作(子功能),其类型决定方面的类型,包括:
(1).before(前置通知):在目标方法执行前被调用,不能阻止目标方法的执行(除非抛它出异常),实现MethodBeforAdvice接口的before方法
before方法的参数:Object[] arg1存放目标方法的所有参数
(2).around(环绕通知):在目标方法执行前被调用,可以获得目标方法的各个参数,可以通过它的返回值或抛出异常来阻止目标方法的执行,实现MethodInterceptor接口的invoke方法
invoke方法的invocation参数:
(3).After returning(后置通知):在目标方法执行完后被调用,可以获得目标方法的返回值,实现AfterReturningAdvice接口的afterReturning方法
afterReturning方法的参数:Object arg0,Method arg1,Object[] arg2,Object arg3
(4).hrows(异常通知):在目标方法抛出异常时执行,实现ThrowsAdvice接口
4.方面(Aspect):是一个抽象的概念,是切入点和通知的横切面(涉及范围广)/统一块/将切入点与通知关联的对象
5.代理(Proxy):替代方面执行操作的对象
三.AOP的实现:导入Spring jar包:右击项目名>MyEclipse>Add Spring Capabilities>勾选Spring 2.0 AOP Libraries>Finish
1.创建目标接口的实现类对象和通知类对象:和IoC中创建对象一样
2.创建切入点:
<bean id="objectName" class="org.springframework.aop.support.NameMatchMethodPointcut">
<property name="mappedNames">
<list>
<value>targetMethodName</value><!--将目标方法注入切入点-->
</list>
</property>
</bean>
3.创建切面:
<bean id="objectName" class="org.springframework.aop.support.DefaultPointcutAdvisor">
<property name="advice" ref="adviceObjectName"></property><!--将通知注册到切面-->
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载