1. 什么是AOP:
    AOP是面向切面编程,也就是说面向某个功能模块编程,典型的应用就是Spring的声明式事务,Spring的AOP事务解析:在以前的事务管理是要融合在逻辑代码中的,在逻辑代码中决定事务是否提交或者回滚,这样很容易造成代码难以维护,代码冗余但是使用spring的声明式事务后,只需要在数据库处理方法上注解事务,就可以对操作进行管理,事务的设置和逻辑代码分开,容易维护
    2. AOP有什么作用:
    面向切面编程,例如某个功能点,我们只需抽取横切关注点,然后让需要处理这些功能点的方法来使用代理的方式调用
    3. AOP有什么组成:
    1. 切面:横切关注点被模块化的对象—-功能模块化组成的对象
    2. 通知:就是切面需要完成的功能—-就是功能的实现方法1、方法2…
    3. 连接点:就是程序执行的某个特定位置,例如方法前方法后,也是通知所关心的位置
    4. 目标:被通知的对象,也是连接点所在的对象 5. 代理(Proxy): 向目标对象应用通知之后创建的对象
    4. AOP怎样使用
    1. 抽取横切关注点:也就是抽取我们需要面向切面编程的功能,然后模块化对象
    2. 然后把模块化对象声明为切面
    3. 把模块对象细粒化,把功能细分为各个方法
    4. 声明通知和通知的连接点