zoukankan      html  css  js  c++  java
  • 我所理解的Spring AOP的基本概念

    Spring AOP中的概念晦涩难懂,读官方文档更是像读天书,看了非常多样例后,写一些自己理解的一些spring的概念。要理解面向切面编程,要首先理解代理模式和动态代理模式。

    如果一个OA系统中的一个功能是查看考勤信息,那么我们如果有要实现这个功能,要经历的步骤是:

    1.启动日志,进行记录。

    2.启动安全性的框架进行安全检验

    3.验证权限          

    4.假设有权限,则查看考勤记录,假设无权限,则输出没有权限。

    我们的目标方法是查看考勤记录,而前面运行了那么多与目标方法无关的方法。

    那些与业务逻辑无关的方法叫切面。切面中的方法为通知。当验证权限通过后,就运行目标方法,则切入点就是验证权限的那个方法。形成代理方法的过程叫做织入,在client调用的方法就是连接点。

    切面

        日志、安全性的框架、权限的检查等,总之和业务逻辑没有关系的都能够看做切面

     通知

        切面中的方法

    切入点

        仅仅有符合切入点,才干把通知和目标方法结合在一起(就像样例中,仅仅有符合了权限,才干查看考勤记录)

    连接点

       client调用的方法

     代理对象的方法=通知+目标方法(代理方法增强了对象的目标方法)

     aop(面向切面编程):做到了代码块的重用

    面向切面编程为什么做到了代码块的重用?那些切面在不同的地方能够调出来用,切面就是不同功能的代码块,能够通过代理模式增强某些目标方法。

    再举个样例,对数据库的增删改查,增删改要开启事务管理,查不须要开启事务管理,对于开启事务,和提交事务,都属于非目标方法,能够看做切面,而增删改,是目标方法。开启事务和提交事务中的方法,是通知。通过动态代理模式,能够把通知和目标方法结合在一起。

  • 相关阅读:
    .Net业务搭配实用技术栈(转)
    基于WebGL/Threejs技术的BIM模型轻量化之图元合并
    设计模式之六大原则
    osgearth介绍
    OSG中的示例程序简介
    共有49款Windows GUI开发框架开源软件 【转】
    地球坐标系与投影方式的理解(关于北京54,西安80,WGS84;高斯,兰勃特,墨卡托投影)(转)
    c#串口编程(转)
    c++消息队列的实现
    SQL总结 连表查询
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/4294109.html
Copyright © 2011-2022 走看看