Marvel-Site Marvel-Site
首页
  • Java

    • Java基础
    • Java进阶
    • Java容器
    • Java并发编程
    • Java虚拟机
  • 计算机基础

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • Linux
  • 框架|中间件

    • Spring
    • MySQL
    • Redis
    • MQ
    • Zookeeper
    • Git
  • 架构

    • 分布式
    • 高并发
    • 高可用
    • 架构
  • 框架

    • React
    • 其他
  • 实用工具
  • 安装配置

    • Linux
    • Windows
    • Mac
  • 开发工具

    • IDEA
    • VsCode
  • 关于
  • 收藏
  • 草稿
  • 索引

    • 分类
    • 标签
    • 归档
GitHub (opens new window)

Marvel

吾必当乘此羽葆盖车
首页
  • Java

    • Java基础
    • Java进阶
    • Java容器
    • Java并发编程
    • Java虚拟机
  • 计算机基础

    • 数据结构与算法
    • 计算机网络
    • 操作系统
    • Linux
  • 框架|中间件

    • Spring
    • MySQL
    • Redis
    • MQ
    • Zookeeper
    • Git
  • 架构

    • 分布式
    • 高并发
    • 高可用
    • 架构
  • 框架

    • React
    • 其他
  • 实用工具
  • 安装配置

    • Linux
    • Windows
    • Mac
  • 开发工具

    • IDEA
    • VsCode
  • 关于
  • 收藏
  • 草稿
  • 索引

    • 分类
    • 标签
    • 归档
GitHub (opens new window)
  • 关于

  • 收藏

  • 草稿

    • 控制反转与依赖注入
      • Components and Services
    • Spring创建Bean的过程
  • 更多
  • 草稿
Marvel
1999-03-26
目录

控制反转与依赖注入

# 控制反转与依赖注入

前言

翻译来自Martin Fowler大师的 Inversion of Control Containers and the Dependency Injection pattern (opens new window)

在Java社区中,出现了许多轻量级容器,它们帮助将来自不同项目的组件组装成一个协调的应用程序。这些容器的底层都采用了一种常见的模式来执行连接,这个概念被称为“控制反转”。在本文中,我将深入探讨这个模式的工作原理,更具体地称为“依赖注入”,并将其与服务定位器进行对比。选择哪种方式并不重要,重要的是将配置与使用分离的原则。

一个常见的问题是如何将不同的元素连接在一起:当这些元素是由不同团队构建且彼此了解有限时,如何将这个Web控制器架构与那个数据库接口连接在一起。许多框架已经尝试解决这个问题,并且有几个框架正在扩展提供一种从不同层面组装组件的通用能力。这些通常被称为轻量级容器,例如PicoContainer和Spring。

这些容器的基础是一些有趣的设计原则,这些原则超越了这些具体的容器,甚至超越了Java平台。在这里,我想开始探索其中一些原则。

# Components and Services

将元素连接在一起的话题几乎立即引入了围绕"服务"和"组件"这两个术语的混乱术语问题。你会很容易地找到关于这些事物定义的长篇矛盾文章。对于我在这里的目的,以下是我目前对这些多义词的使用方式。

组件是软件的一部分,它的源码不可以被使用者修改,只能扩展。

编辑 (opens new window)
上次更新: 2024/04/23, 16:50:31
Web项目 — 校园讲座预约系统
Spring创建Bean的过程

← Web项目 — 校园讲座预约系统 Spring创建Bean的过程→

最近更新
01
位运算
05-21
02
二叉树
05-12
03
Spring三级缓存解决循环依赖
03-25
更多文章>
Theme by Vdoing | Copyright © 2022-2024 Marvel
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式