一、AOP
面向切面编程技术,AOP也是一种思想,spring framework实现AOP是基于AspectJ的技术。
二、AOP的好处及使用场景是什么?
AOP的好处:
1、降低模块之间的耦合度
2、使系统容易扩展
3、更好的代码复用
AOP的使用场景:
权限控制、 缓存控制、 事务控制、 日志控制、 性能监控、 异常处理等
三、DI和IOC是什么关系呢?
ICO叫做控制反转。是一种编程思想,也即是一种需要达到的目标(和spring无关,那么spring framework实现这种编程思想或者实现这种目标的技术手段叫做DI,也就是依赖注入。
四、Spring AOP的切面表达式介绍
1、通配符
* 表示匹配任意字符
+ 表示匹配该类及其所有子类
.. 表示匹配包下的所有子包或任意数量的参数
2、execution表达式
方法修饰符 方法返回值 包名 (方法的参数) 抛出某种异常的
Public void com.tedu.service.*.*(..) throws xxException
以上表达式表示: com.tedu.service包下的所有的类的所有返回值为void的public方法
六、Spring AOP的advice注解介绍
表示植入代码的时机
1、@Before
:前置通知,在方法执行前做增强处理
2、@After
:后置通知,在方法执行之后无论是否有异常,都会做增强处理
3、@AfterReturning
:方法正常执行后做增强处理
4、@AfterThrowing
:方法执行时抛出异常时做增强处理
5、@Around
:在方法执行之前和之后都做增强处理