zoukankan      html  css  js  c++  java
  • spring 概述

    spring 

      1、容器:整合其它框架,将bean纳入容器中。

      2、使用IOC解耦合。

        Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。

        Dependency Injection,即“依赖注入”:组件之间依赖关系。

        旧的方式:每个对象负责管理与自己互相协作的对象,如:Action中,需要的Service对象,都需要自己创建(代码耦合度高)。

        spring的IOC:所有的对象,都在spring容器中创建;对象间的关系,用DI进行关联。配合接口开发模式进行使用,当需要修改Service的具体实现时,不再需要修改Action中的代码,修改注解或者修改配置文件即可实现。

      3、使用AOP处理事务。

         spring AOP 只支持方法连接点。

        AspectJ、JBoss支持方法、构造器、字段的连接点,功能更强大。

    一、IOC(Inversion of Control,控制反转)(Dependency Injection,依赖注入DI):
      由spring来控制对象的生命周期和对象间的依赖关系。
      参考:https://www.cnblogs.com/ITtangtang/p/3978349.html


    二、AOP(Aspect Oriented Programming,面向切面编程)
      参考:https://www.cnblogs.com/xrq730/category/941473.html

      spring 动态代理的实现:
        JDK: InvocationHandler,Proxy
        cglib:MethodInterceptor,Enhancer

        spring aop的原理:
          默认使用JDK动态代理技术。
          为什么使用JDK作为默认的代理技术?
          1、创建代理类速度:JDK使用面向接口编程,而cglib使用继承父类动态生成字节码技术,因此JDK创建代理的速度更快。
           2、运行速度:cglib直接调用父类的被代理方法,而JDK需要使用反射调用被代理类的方法,所以运行速度cglib更快。


    三、三级缓存(解决循环依赖问题)

      https://www.jianshu.com/p/6c359768b1dc

  • 相关阅读:
    Kotlin 学习笔记(一)
    Android 中调用本地命令
    Android 6.0 中的 Wifi 连接
    Android 中的广播机制
    面向对象之继承和多态
    2016 年秋季助教总结
    2016 年年志
    C 语言学习 第12次作业总结
    程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索
    程序员编程艺术第三十四~三十五章:格子取数问题,完美洗牌算法
  • 原文地址:https://www.cnblogs.com/chen--biao/p/9765441.html
Copyright © 2011-2022 走看看