zoukankan      html  css  js  c++  java
  • ioc和aop理解

    1、IOC 表示控制反转。

      简单点说就是原来的对象是在要使用之前通过在代码里通过new Something()的方式创建出来的;

      IOC则是由spring容器创建同一创建,在程序要使用到该对象的时候,自动注入。(spring默认在web容器启动的时候就创建了单例的对象)

      IOC最大的作用是减少了代码之间的耦合度。

    2、AOP

      AOP(Aspect-Oriented Programming)其实是OOP(Object-Oriented Programing)
    思想的补充和完善。我们知道,OOP引进"抽象"、"封装"、"继承"、"多态"等概念,对万事万物进行抽象和封装,来建立一种对象的层次结构,它强调了
    一种完整事物的自上而下的关系。但是具体细粒度到每个事物内部的情况,OOP就显得无能为力了。比如日志功能。日志代码往往水平地散布在所有对象层次当
    中,却与它所散布到的对象的核心功能毫无关系。对于其他很多类似功能,如事务管理、权限控制等也是如此。这导致了大量代码的重复,而不利于各个模块的重
    用。   而AOP则恰恰相反,它利用一种称为"横切"的技术,能够剖解开封装的对象内部,并将那些影响了多个类并且与具体业务无关的公共行为 封装成一个独立的模块(称
    为切面)。更重要的是,它又能以巧夺天功的妙手将这些剖开的切面复原,不留痕迹的融入核心业务逻辑中。这样,对于日后横切功能的编辑和重用都能够带来极大
    的 方便。    

    AOP技术的具体实现,无非也就是通过动态代理技术或者是在程序编译期间进行静态的"织入"方式。下面是这方面技术的几个基本术 语:    

    1、join point(连接点):是程序执行中的一个精确执行点,例如类中的一个方法。它是一个抽象的概念,在实现AOP时,并不需要去 定义一个join point。    

    2、point cut(切入点):本质上是一个捕获连接点的结构。在AOP中,可以定义一个 point cut,来捕获相关方法的调用。    

    3、advice(通知):是point cut的执行代码,是执行“方面”的具体逻 辑。    

    4、aspect(切面):point cut和advice结合起来就是aspect,它类似于OOP中定义的一个类,但它代表的更多是对 象间横向的关系。    

    5、introduce(引入):为对象引入附加的方法或属性,从而达到修改对象结构的目的。

  • 相关阅读:
    Typora的使用
    selenium中webdriver提供的八大定位元素方法
    JAVA的Data和Timestamp的相互转换
    Jmeter设置参数作为断言依据
    Springboot +Poi 导入Excel表格
    window.location.reload();
    带参数的链接跳转
    Layui结束时间不能小于开始时间
    后台返回数据渲染Layui表格
    Layui中layedit模板的使用
  • 原文地址:https://www.cnblogs.com/SFHa/p/10275253.html
Copyright © 2011-2022 走看看