Spring:AOP面向切面
2013-12-02 20:30
253 查看
AOP:面向切面,是一种编程思想,OOP的延续。将系统中非核心的业务提取出来,进行
单独处理。比如事务、日志和安全等。这个简单来说就是可以在一段程序之前或者之
后做一些事。
Spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题。使代码重用度高、易于维
护。不过AOP和IOC并不是spring中特有的,只是spring把他们应用的更灵活方便
AOP(Aspect Oriented Programming),也就是面向方面编程的技术
1) Aspect切面(方面)
指的是共通业务处理,可以切入到多个目标对象,可多次使用
2) JoinPoint连接点
指的是切面组件在目标对象上作用的位置, 例如:方法上戒者发生异常。
3) Pointcut切入点
切入点是连接点的集合,采用表达式指定
4) Target Object目标对象
5) Advice通知
指的是切面组件在连接点上执行的劢作。 例如:在方法调用前、方法调用后、方法调用前后等。
6) AutoProxy劢态代理
采用了AOP乊后,容器返回的对象是代理对象。用户在使用时,由代理对象调用切面组件和 目标对象的功能。
a. 目标对象有接口采用JDK代理、
b. 目标对象没有接口采用CGLIB代理
<bean>
...
<aop:config>
<aop:pointcut id="servicepointcut"
expression="execution(* com.mummy.service.*.*(..))" />
<aop:aspect id="loggeraspect" ref="optlogger">
<aop:before method="logger" pointcut-ref="servicepointcut"/>
</aop:aspect>
</aop:config>
</beans>
<aop:aspect > 用于配置切面
id属性
ref属性 用于关联切面的bean
<aop:pointcut/>用于设置切入点
expression属性 类似于正则形式的表达式
execution()用于设置方法限定
execution(* com.mummy.service.*.*(..))
表示不限定返回类型,限定指定tarena.service包下的所有方法,不限定参数类型
<aop:before> 表示采用before这种通知,作用于pointcut和方法上
单独处理。比如事务、日志和安全等。这个简单来说就是可以在一段程序之前或者之
后做一些事。
Spring 的AOP和IOC都是为了解决系统代码耦合度过高的问题。使代码重用度高、易于维
护。不过AOP和IOC并不是spring中特有的,只是spring把他们应用的更灵活方便
AOP(Aspect Oriented Programming),也就是面向方面编程的技术
1) Aspect切面(方面)
指的是共通业务处理,可以切入到多个目标对象,可多次使用
2) JoinPoint连接点
指的是切面组件在目标对象上作用的位置, 例如:方法上戒者发生异常。
3) Pointcut切入点
切入点是连接点的集合,采用表达式指定
4) Target Object目标对象
5) Advice通知
指的是切面组件在连接点上执行的劢作。 例如:在方法调用前、方法调用后、方法调用前后等。
6) AutoProxy劢态代理
采用了AOP乊后,容器返回的对象是代理对象。用户在使用时,由代理对象调用切面组件和 目标对象的功能。
a. 目标对象有接口采用JDK代理、
b. 目标对象没有接口采用CGLIB代理
<bean>
...
<aop:config>
<aop:pointcut id="servicepointcut"
expression="execution(* com.mummy.service.*.*(..))" />
<aop:aspect id="loggeraspect" ref="optlogger">
<aop:before method="logger" pointcut-ref="servicepointcut"/>
</aop:aspect>
</aop:config>
</beans>
<aop:aspect > 用于配置切面
id属性
ref属性 用于关联切面的bean
<aop:pointcut/>用于设置切入点
expression属性 类似于正则形式的表达式
execution()用于设置方法限定
execution(* com.mummy.service.*.*(..))
表示不限定返回类型,限定指定tarena.service包下的所有方法,不限定参数类型
<aop:before> 表示采用before这种通知,作用于pointcut和方法上
相关文章推荐
- Spring学习4-面向切面(AOP)之Spring接口方式
- 使用Spring进行面向切面(AOP)编程
- Spring学习笔记(三)--面向切面编程AoP
- Spring学习总结之面向切面(AOP)
- Spring学习4-面向切面(AOP)之aspectj注解方式
- Spring--AOP--面向切面编程
- spring心得7--spring第二大特点AOP(面向切面)讲解
- spring的AOP--面向切面编程
- SpringAOP面向切面详解(带实例)
- 使用Spring进行面向切面(AOP)编程
- Spring.Net 面向切面AOP
- Spring学习4-面向切面(AOP)之schema配置方式
- Spring之面向切面编程AOP(二)
- spring学习--面向切面编程AOP和AspectJ
- 黑马程序员--Spring Aop 面向切面编程,实现前置通知
- 【spring-boot】spring aop 面向切面编程初接触
- 【Spring】面向切面之AOP
- Spring 面向切面编程AOP
- Spring面向切面编程AOP
- Spring核心机制(面向切面编程AOP)