zoukankan      html  css  js  c++  java
  • 深入了解spring(二) IOC容器

    要理解这个得先了解控制反转的概念,举例如下

    加入有一个接口service 有post方法

    其有两个实现类如webservice    standaloneservice  

    需求是客户端调用post方法来完成操作

    如public void dopost(string type){

      service target = new webservice();

      target.post(type);

    }

    大致如上,如果以后改动,那么就很难的维护,进一步的做法,是用工厂模式来实现

    public void dopost(string type){

      service target = serviceFactory.newInstance();

      target.post(type);

    }

    工厂的具体实现需要一个类,而且还带有一个不太明确的参数,无法很好的显示

    用反转模式

    public void dopost(service target){

      target.post(type);

    }

    而参数里面的变量则由ioc容器注入,想用那个具体实现据用那个具体的实现,至于具体的方法都可以放到实现类的里面,这样就实现了高内聚、低耦合

    jdk反射

    cglib反射

    如果想要理解过程,那么就得弄清楚,如何把对象注入到容器中,通过哪种方式把外界配置的信息传进去框架,如何保存,如何转换,如何查找和调用,声明周期如何

    一.IOC容器的简介

       依赖注入:另一个称呼是控制反转,把对象的依赖关系交由ioc容器来控制,即对象依赖关系的管理被反转了,并由ioc注入

    可以理解为IOC提供了管理javabean的容器,通过ioc模式管理依赖关系,并通过ioc注入和aop增强了javabean这样的pojo的事物管理、生命周期管理等

    注入的方式有:setter注入、接口注入、构造注入

    二.IOC容器的设计和实现

  • 相关阅读:
    UOJ #455 [UER #8]雪灾与外卖 (贪心、模拟费用流)
    Codeforces 482E ELCA (LCT)
    Codeforces 798D Mike and distribution (构造)
    AtCoder AGC017C Snuke and Spells
    HDU 6089 Rikka with Terrorist (线段树)
    HDU 6136 Death Podracing (堆)
    AtCoder AGC032D Rotation Sort (DP)
    jenkins+python+kubectl实现批量更新k8s镜像
    Linux 下载最新kubectl版本的命令:
    jenkins X 和k8s CI/CD
  • 原文地址:https://www.cnblogs.com/lvcongblog/p/10288336.html
Copyright © 2011-2022 走看看