zoukankan      html  css  js  c++  java
  • 谈Spring的理解

    技术旨在理解。

    最近风靡的SpringMVC,其实只是Spring的一个组件,充分说明Spring的强大。Spring到底是个什么鬼?用SSH的人很多,但是还真不是谁都能说清Spring的原理。

    在SSH框架中Srping充当了管理容器的角色; 

    Spring容器集中管理Bean的实例化;

    关于Spring除了SpringMVC,我们听的最多的是“控制反转IOC”,“依赖注入DI”,“面向切面AOP”

    一、依赖注入(Dependecy Injection,DI)和控制反转(Inversion of Control,IOC)是相近的概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中创建被调用者的工作不再由调用者来完成,因此称为【控制反转】。创建被调用者的工作由spring来完成,然后注入调用者,因此也称为【依赖注入】。

    1、控制不反转:就是当A需要B时,A就要去new出B来,然后加入到A中。

    2、控制反转:就是系统知道A需要B,会提前将B给A,不需要A再要了。——降低耦合

    *IOC的别名:依赖注入(DI)
    2004年,Martin Fowler探讨了同一个问题,既然IOC是控制反转,那么到底是“哪些方面的控制被反转了呢?”,经过详细地分析和论证后,他得出了答案:“获得依赖对象的过程被反转了”。控制被反转之后,获得依赖对象的过程由自身管理变为了由IOC容器主动注入。于是,他给“控制反转”取了一个更合适的名字叫做“依赖注入(Dependency Injection)”。他的这个答案,实际上给出了实现IOC的方法:注入。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中。
    所以,依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情,就是指通过引入IOC容器,利用依赖关系注入的方式,实现对象之间的解耦。

    *Spring的解耦原理实质上是实现了接口和实现的分离。——斧子TL

    转自:http://blog.csdn.net/jiuqiyuliang/article/details/42920573

    二、面向切面编程(AOP)

    1.面向切面编程提供声明式事务管理

    2.spring支持用户自定义的切面

    应用:利用它很容易实现如权限拦截,运行期监控等功能

     

  • 相关阅读:
    Linux 多路复用 select / poll
    Linux 驱动层实现阻塞和非阻塞
    Linux 中断下半部
    Nginx基本配置文件
    lnmp “.user.ini”无法删除解决方法
    阿里云服务器配置nginx和PHP
    PHP使用某个键值对二维数组排序
    Laravel 生成二维码的方法
    Redis五种数据类型-设置key的过期时间
    laravel中redis队列的使用
  • 原文地址:https://www.cnblogs.com/qsl568/p/5143205.html
Copyright © 2011-2022 走看看