@annotation 拦截条件,AOP
1111111111111111
相关问题:
1.为了解决oop面向对象的不足
2.(1)降低模块之间的耦合
(2)实现代码的复用
(3)使程序更容易扩展
场景:日志记录,性能统计,安全控制,事务处理,异常处理
3.使用动态代理和使用静态织入
课后问题:
1、为什么引入AOP?
2、AOP好处以及适用场景
3、AOP的两大核心要点
1.为什么要引入AOP的编程范式
引入AOP的编程范式去处理那些OOP不能处理的问题或不好处理的问题,例如视频中老师说的权限控制问题。又比如一个方法中要插入数据到两张表中时,这一次操作是同一个事务,要么同时失败,要么同时成功,这时是不能用面向对象(OOP)编程去实现的。
2.AOP的好处以及适用场景是什么?
能够减少大量的重复代码,视频中所言;又如事务控制时,我们只需要在方法上加@transaction就可以在该方法上启用事务机制,如果发生异常,那么事务会进行自动回滚。这样,我们开发人员能够更加的关注业务代码的开发,而不是事务代码的编写。
3.AOP的两大核心是什么?
AOP的两大核心就是分离软件系统功能性需求(核心关注点)和非功能性需求(非核心关注点),业务处理的主要流程将集中在核心关注点处。
三个思考题
AOP的核心特点
1,解决代码重复;
2,关注点转移(分离)
关注点有水平分离、垂直分离以及功能分离(AOP)
水平分离:一般的持久层->服务层->展示层
垂直分离:业务模块的分离->订单系统、支付系统等
功能分离:将非功能部分,分离(转移)到功能部分进行管理