Spring|Spring AOP思想与配置
相关概念
AOP面向切面编程思想:
横向重复代码,纵向抽取。
过滤器,拦截器,动态代理都能体现AOP。
动态代理:
- 通过动态代理可以体现AOP思想。
- 动态代理是对某一个目标对象中的方法进行增强。
Spring AOP 原理:
- Spring封装了动态代理(只能对接口)代码。我们就不需要手写动态代理代码。
动态代理:被代理对象必须要实现接口,才能产生代理对象.如果没有接口将不能使用动态代理技术。 - 还封装了cglib(不仅对接口,类也可以)代码。
cglib代理:第三方代理技术,cglib代理,可以对任何类生成代理。代理的原理是对目标对象进行继承代理。如果目标对象被final修饰,那么该类无法被cglib代理。 - Spring 可以对任何类进行代理增强。
Spring AOP 中的名词:
Joinpoint(连接点):目标对象中,所有可以增强的方法。
Pointcut(切入点):目标对象,已经增强的方法。
Advice(通知/增强):增强的代码。
Target(目标对象):被代理对象。
Weaving(织入):将通知应用到切入点的过程。
Proxy(代理):将通知织入到目标对象之后,形成代理对象。
Aspect(切面):切入点+通知。
配置
- 导包 4+2
Spring 的 AOP 包:
spring-aspects-4.2.4.RELEASE.jar
spring-aop-4.2.4.RELEASE.jar
Spring 需要第三方 AOP 包:
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar - 准备目标对象
- 准备通知
- 配置进行织入,将通知织入目标对象中(两种方法:XML和注解)
第一种,用xml进行织入配置:
第二种,使用注解:
学习内容来自:传智播客spring视频
了解AOP思想可参考:http://www.cnblogs.com/xrq730/p/4919025.html
还没有评论,来说两句吧...