1、spirngAOP Aspect object programmer面向切面编程, |
|
在项目中有些方法的前后都会执行一些相同的逻辑、例如是记录日志逻辑 |
|
这样每一个方法中写这些逻辑很麻烦、因为他们都是相同的 代码逻辑、这样传统的面向对象 |
|
是无法解决这种问题、就用到了面向切面的编程、将一个公共的记录日志的行为 |
|
抽取出来做成一个公共的模块,这个公共的模块就是叫做一个切面、我们所说的面向切面编程就是 |
|
抽取部分公共模块,例如记录日志模块,将这个记录日志模快横切到每个方法的执行前后、这样在 |
|
项目总对于这个日志模块是可差拔的、我们需要的时候只许要去掉这个切面就可以了、需要的时候 |
|
加上这个切面就可以了、降低了系统的复杂度、同时也降低了系统的耦合性,提高代码的复用性; |
|
|
|
|
|
Spring提供的声明是事物管理底层就是使用的是AOP的方式进行事物管理的。具体就是在方法开始的时候 |
|
底层使用jdbcTempalte或者其他方式开始事物begin transaction,在事物结束的时候spring事物管理器帮助我们进行手动commit, |
|
遇到异常时候帮助我们进行rollback |
|
当然spring事物管理器实现的功能远不止这些、还可以实现事物的传播方式(7中 常用的是require---> ) |