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

  • 相关阅读:
    Sass--扩展继承
    Sass--混合宏的不足
    学习笔记47—PhotoShop技巧
    学习笔记46—如何使Word和EndNote关联
    学习笔记45—Linux压缩集
    学习笔记44—Linux下安装freesurfer
    学习笔记43—Linux安装集
    学习笔记42—Win7下安装Linux双系统
    学习笔记41—ttest误区
    学习笔记40—endnote点点滴滴
  • 原文地址:https://www.cnblogs.com/chen--biao/p/9765441.html
Copyright © 2011-2022 走看看