zoukankan      html  css  js  c++  java
  • Spring AOP

                                                                    
    编程范式概览:
    1面向对象编程 2面向过程编程 3函数式编程  4事件驱动编程 5面向切面编程
    2是OOP的互补而不是替代

    AOP初衷:
    1不要重复
    2关注点分离:
    水平分离:展示层->服务层->持久层
    垂直分离:模块划分(订单.库存等)
    切面分离:分离功能性需求和非功能性需求->把非功能性需求从功能性需求剥离出来进行集中管理

    使用AOP好处:
    1集中处理某一关注点,横切逻辑
    2可以很方便的添加/删除关注点
    3侵入性小,增强代码可读性和可维护性

    AOP应用场景:-----统一称为非功能性需求
    权限控制     缓存控制    事务控制   审计日志   性能监控   分布式追踪    异常处理

    支持AOP的编程语言:
    JAVA    .NET   C/C++  RUBY   Python    PHP  ...

    Spring AOP配置:1XML配置   2注解方式
    主要注解:AspectJ:@Aspect类上(@Pointcut/@Before/@After:方法上/@Advice表示执行之前和之后执行)

    Pointcut expression:
    expression:1designators:匹配方式  2wildcards通配符:* ..+ 3operators运算符:&&  || !

    designators:决定了匹配方式
    1匹配方法->execution()
    2匹配注解->@target()/@args()/@within()/@annotation()
    3匹配包/类型:within()
    4匹配对象:this()/bean()/target()
    5args()

    Wildcards(通配符):
    *:匹配任意数量的字符     +匹配指定类及其子类    ..一般用于匹配任意数的子包或者参数

    operators运算符:
    &&:与运算符   ||或操作符     !非操作符


    AOP用的比较少,主要是通过吧非功能性需求从功能性需求中剥离出来,从而达到解耦的目的,重要的是他的思想,并且面试比较多,

    工作中实际使用比较少,所以我还是不学了



  • 相关阅读:
    Jmeter -- HTTP Request Defaults
    Jmeter -- 属性和变量
    Jmeter -- 逻辑控制器(Logic Controller)
    Jmeter报告优化之New XSL stylesheet
    Jmeter调试工具---HTTP Mirror Server
    Jmeter ----Bean shell使用
    转jmeter --JDBC请求
    Memcached 教程
    基于ZooKeeper的分布式Session实现
    Kafka配置说明
  • 原文地址:https://www.cnblogs.com/xinglongbing521/p/10396521.html
Copyright © 2011-2022 走看看