• Spring框架(依赖注入)


    特点

      1轻量级和侵入性低

      2依赖注入和面向接口实现松耦合

      3面向切面编程 减少样式代码

    专有名词:

      1依赖注入:对象无需自行管理依赖关系。通过系统负责协调在创建对象的第三方组件的设定,实现依赖关系自动注入对象 

      2装配:应用组件之间的协作

      3应用切面:将遍布各处的功能分离出来 形成可重用的组件

      4耦合度:两者之间关系的紧密程度,即依赖关系的紧密程度

    例子:

      耦合度紧密:

      

    public class DamselRescuingKnight implements Knight {
    
      private RescueDamselQuest quest;
    
      public DamselRescuingKnight() {
        this.quest = new RescueDamselQuest();
      }
    
      public void embarkOnQuest() {
        quest.embark();
      }
    
    }

      分析:

    DamselRescuingKnight 类和 RescueDamselQuest类之间紧密耦合 

    松耦合:
    public class BraveKnight implements Knight {
    
      private Quest quest;
    
      public BraveKnight(Quest quest) {
        this.quest = quest;
      }
    
      public void embarkOnQuest() {
        quest.embark();
      }
    
    }
    DamselRescuingKnight 类 松耦合 没有与特定的Quest实现产生耦合 可以根据不同的需求进行实现的替换 
    通过.xml文件进行依赖注入的配置
    <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
          http://www.springframework.org/schema/beans/spring-beans.xsd">
    
      <bean id="knight" class="sia.knights.BraveKnight">
        <constructor-arg ref="quest" />
      </bean>
    
      <bean id="quest" class="sia.knights.SlayDragonQuest">
        <constructor-arg value="#{T(System).out}" />
      </bean>
    
    </beans>

    分析:id为knight的 bean标签的注入方式是构造器注入,依赖是id为quest的bean标签 但是依赖具体的实现设置是根据class属性决定可以根据具体情况修改 实现了类的松耦合

  • 相关阅读:
    几张图就把 Kubernetes Service 掰扯清楚了
    一文读懂 Kubernetes APIServer 原理
    K8S调度系统由浅入深系列:简介
    K8S蓝绿部署:Blue/Green Deployments on Kubernetes
    K8s Nginx Ingress 介绍
    探索 Kubernetes HPA
    [译]走进Kubernetes集群的大脑:Etcd
    AIX文件系统大小限制调整(转)
    修改SSH服务监听端口,引起服务启动失败原因分析
    Docker-compos部署nextcloud私有网盘
  • 原文地址:https://www.cnblogs.com/YangJM/p/7507768.html
Copyright © 2020-2023  润新知