0 0

【疑问】关于IOC容器设计的疑惑10

看了网上对于IOC容器优点讨论的很多,但是仍是没有切身体会,拿来使用的时候,发现有以下疑惑:

1、某个bean的属性或者依赖的构造参数,不适合定义为一个bean该怎么办。
   在使用ioc的时候,对于引用,基本上都是定义为引用其他bean。但是在项目中,bean依赖的某些引用类型参数确实不适合做成一个bean,这时该如何处理。
   能想到的就是,获取bean的时候传入运行时参数。类似于如下定义
   public Object getBean(Object key, Object ... runtimeParas);
   但是根据上面的处理后,发现又会有如下问题---即某个bean所依赖的bean也需要传入运行时参数,这样就无法完成自动装配~

2、对于ioc容器定义的时候是否定义一些全局的上下文,供所有的bean使用呢,类似于如下定义
  public Object getIocContext(String contextKey);
  
  
  
2008年10月05日 15:50

1个答案 按时间排序 按投票排序

0 0

采纳的答案

第一个问题:如果你发现你的bean不适合ioc管理,那么只能说明你的代码不够标准,或者说不符合ioc的要求,请重构。特别是Spring2.5以后bean类型都可以定了,我真想不通还有什么理由不适合ioc管理。
对于第二点:这个需求是有的,比如在Spring与其他web MVC框架集成的时候在控制器中调用Spring IOC 管理的bean就要通过Spring 的Context获取。如果你想自己实现一套IOC而不是使用Spirng的IOC,那么你至少应该知道IOC其实就是一个工厂模式你给这个工厂一个bean的名字,它传给你一个产品(bean),它怎么知道传什么呢?显然是通过getApplicationContext这种方式。

2008年10月05日 23:43

相关推荐

    IOC容器简单实现

    IOC(Inversion of Control)容器是软件设计模式中的一种,它将对象的创建和管理权从代码本身转移到一个外部容器,即IOC容器。这种反转控制使得程序更加灵活,降低了组件之间的耦合性,提高了可测试性和可维护性。本...

    IoC容器的设计(利用反射、注解和工厂模式实现)

    1. 利用注解、反射和工厂模式设计一个简单的IoC容器 2. 该IoC容器包含3个注解和一个IoC容器类(AnnotationConfigApplicationContext),其定义如下: 注解 含义 @Component 标注Bean @Autowired 标注需要被注入的...

    spring Ioc容器配置

    spring Ioc容器配置 IOC容器数据源配置 <!-- 配置数据源 --> destroy-method="close"> <value>org.gjt.mm.mysql.Driver <value>jdbc:mysql://localhost:3306/demo <value>root ...

    MVC与IOC容器互动

    - 配置文件,可能包含了关于IOC容器的配置,如服务定义和依赖关系。 总结,MVC与IOC容器的结合在Formwork框架中实现了高度的模块化和解耦,使得开发者能够更专注于业务逻辑,而不是对象的创建和管理。通过依赖注入...

    Spring IOC容器实现分析.pdf 下载

    IOC,即控制反转,是面向对象编程中的一个设计原则,它的主要思想是将对象的创建和管理权交给外部容器,而不是由对象自身负责。在Spring框架中,IOC容器负责管理对象的生命周期和依赖关系,通过配置文件或注解来定义...

    Spring IoC容器实现的结构分析

    总之,Spring IoC容器的实现是一个复杂而精巧的设计,它通过一系列组件协同工作,实现了对象的创建、装配和管理,为开发者提供了强大的依赖注入功能。无论是简单的应用还是复杂的分布式系统,Spring IoC容器都能有效...

    简单IOC容器demo

    【标题】:“简单IOC容器demo”是一个演示性的项目,它旨在教授如何构建一个基础的控制反转(IOC)容器。这个容器使用注解来实现依赖注入,这是Spring框架的核心特性之一。 【描述】:该示例项目是学习过程的产物,...

    手写一个SpringIoc容器

    通过实现这样一个自定义的Spring IOC容器,我们可以更深入地理解Spring是如何工作的,以及如何使用IoC和DI原则来设计和构建软件。这将有助于提高我们的编程技巧和设计能力,特别是在大型企业级应用开发中。

    IOC容器_原理代码

    **IOC容器原理与实现** IOC(Inversion of Control),即控制反转,是软件设计模式中的一种核心概念。在Java开发中,Spring框架是最为著名的实现IOC的库。它改变了传统程序设计中对象间的依赖关系创建方式,将对象...

    IoC 容器和Dependency Injection 模式

    - **PicoContainer**:PicoContainer 是一个轻量级的 IoC 容器,它的设计目标是简单易用。虽然没有 Spring 那么全面,但对于小型项目或简单的依赖管理来说已经足够。 #### 六、总结 IoC 容器和依赖注入模式是现代...

    Spring IOC容器应用实例

    IoC 是一种设计模式,它将对象的创建和管理从应用程序的业务逻辑中分离出来,使代码更加灵活、可测试和可维护。在 Spring 中,IoC 容器负责初始化、配置和管理对象,以及它们之间的依赖关系。 首先,我们来理解什么...

    Spring的IoC容器初始化源码解析

    Spring的IoC容器通过一系列精心设计的接口来实现其强大功能。下面详细介绍一些关键接口: ##### 4.1 BeanFactory系列接口 - **BeanFactory**:基础的容器接口,提供了最基本的bean管理功能。 - **...

    手动实现一个ioc容器.zip

    标题 "手动实现一个IOC容器.zip" 提到的主题是关于如何从零开始构建自己的依赖注入(Dependency Injection,简称DI)容器,这在Java开发中尤为重要,特别是对于Spring框架的理解和学习。IOC容器是Spring的核心功能之...

    自己实现IOC容器

    **IOC(Inversion of Control)容器**,全称“控制反转”,是软件设计模式中的一种,主要用于降低系统组件之间的耦合度。在Java领域,Spring框架的IOC容器是最为广泛应用的实现之一。当我们自己动手实现IOC容器时,...

    模拟Spring的IoC容器实现注解自动装配

    在Spring框架中,IoC(Inversion of Control)容器是其核心特性之一,它负责管理对象的生命周期和依赖关系。IoC容器通过控制反转的概念,将对象的创建和依赖关系的配置从应用代码中分离出来,使代码更加灵活、可测试...

    自己实现的ioc容器

    Spring框架的核心特性之一就是Inversion of Control(IoC)容器,也被称为依赖注入(Dependency Injection)。IoC容器负责管理对象的生命周期和对象间的依赖关系,从而降低了代码的耦合度,提高了可测试性和可维护性...

    IOC容器的创建流程.png

    Spring IOC容器的创建流程图

    一个简单的IOC容器实现

    本文将深入探讨一个简单的IOC容器实现,帮助我们理解DI的基本原理。 首先,理解IOC的概念至关重要。在传统的编程模式中,对象通常自行创建依赖的对象,这导致了代码之间的紧密耦合。而在IOC模式下,容器负责管理...

Global site tag (gtag.js) - Google Analytics