什么是AOP:
我的理解是 把系统性的编程工作封装起来 =》我给这个取个名字叫 “Aspect”,然后通过AOP技术把它切进我们的业务逻辑代码 =》 “业务“
这样的好处:
“Aspect” 和 “业务” 相互独立,既可以让“业务” 用到了 “Aspect” 又让2者互相独立不耦合,多个“业务”也能复用 同一份“Aspect”
举一个最实用的例子 Transaction 事物
我们经常会在业务代码上使用Transaction事物,比如使用TransactionScope:
下面的测试代码用到了我在维护的一个开源ORM框架
https://github.com/yuzd/AntData.ORM
示例业务代码:
![f13bdeac4ae32f02ccf4cd6e8e820ccb.png](https://i-blog.csdnimg.cn/blog_migrate/d5cfb095c6363931da300d1c19964b25.jpeg)
上面的代码 就是 插入一个学校到db 然后拿到主键 赋值给 person 再insert到db。 在同一个事物里面 要么school 和person 同时插入db 要么都失败。
实际业务代码肯定比这个要复杂的多了,比如多个方法在一个事物里面等我这里就举最简单的例子。
那么如果每段业务逻辑都这么写的话 会造成重复性代码很多,下面我们就尝试用AOP面向对切的思想去优化
思考怎样的方式才是我想要的
示例代码&#x