• Spring IOC 原理


    本文讨论:Spring IOC的核心概念和原理

    1、在讨论主题之前,先说一说耦合和内聚的概念

      耦合:指的是两个模块或者类之间存在着某种关联,比如说,在类A的方法中调用了类B的方法,那么类A和类B就产生了耦合。一旦两个类或者模块之间产生了耦合,那么在修改其中一个的时候,极有可能牵涉到另外一个。耦合是不可避免的,但是在设计软件系统的时候,应该把耦合降到最低,否则以后维护这个软件系统是非常困难的。

      内聚:指的是一个模块、一个类甚至一个方法具有专一的功能。也就是说,一个方法只做一件事情,save方法只将实体保存到数据库,find方法只从数据库抓去数据,而不是在save方法中既保存数据又查询数据返回。如果一个模块或者方法做的事情越多,那么修改起来是很蛋疼的,不利于扩展,这样也较少的牵扯到其他模块和类。

      在软件开发中,应该设计出低耦合高内聚的模块和类。

    2、IOC的概念

      Spring的核心之一就是IOC(Inversion Of Controller),中文名控制反转。很多人都知道控制反转,但是到底是什么被反转了?首先,回顾一下传统的开发方式,要实现一个业务逻辑,一般情况下至少需要两个或两个以上的类来共同协作完成,通常,一个对象在使用他合作对象(依赖对象)时都需要通过new Object()来完成合作对象的申请工作,这样对象间的耦合度增高了。而IOC的思想是:Spring容器来实现这些对象的创建和协调工作,对象只需要关心本身的业务逻辑就可以了,由此可以看出,IOC指的是获得依赖对象的责任被反转了。

    3、DI的概念

      DI(Dependency Injection)依赖注入,DI是IOC的核心,什么是依赖注入呢?例如,在Action中引用了Service,那么在完成Action的业务逻辑的需要依赖Service对象,那么Spring就会把依赖的Service自动注入到Action中。那么Spring是怎么实现依赖注入的呢?答案是Java的反射,它允许程序动态的生成对象,调用对象的方法,改变对象的属性,Spring就是通过反射来实现依赖注入的

  • 相关阅读:
    使用VS进入源码调试
    Nlog配置
    一个极简的爬虫
    简单的调用图灵机器人
    docker部署netcore项目 nginx负载均衡
    windows nginx负载均衡
    windows服务器环境配置redis sentinel部署
    ASP.NET资源大全-知识分享
    ABP动态生成WebAPI
    windows服务器环境下安装redis
  • 原文地址:https://www.cnblogs.com/horace/p/4386376.html
Copyright © 2020-2023  润新知