最简单的ioc容器代码(低仿Spring )

Spring 的一大核心就是IOC,控制反转(依赖注入)。

对象交由容器去控制,降低耦合性。

Spring 的ioc实现原理其实很简单,容器启动后读取并解析配置文件,根据配置文件中<bean>标签的class属性,通过反射生成类,将各个属性都通过反射设置好值,最后将已经创建好的bean保存到容器中,等待注入。

详细的说明在这里:http://www.bccn.net/Article/web/jsp/jszl/200810/8059.html

参考这个帖子自己动手写了写,感觉对ioc理解又深入了一些。

时间: 2024-08-10 02:11:38

最简单的ioc容器代码(低仿Spring )的相关文章

几句代码简单实现IoC容器

前言 最近在调试EasyNetQ代码的时候发现里面有一段代码,就是IoC容器的简单实现,跟着他的代码敲了一遍,发现了奇妙之处.当然也是因为我才疏学浅导致孤陋寡闻了.他的思路就是通过动态调用构造函数生成对象,然后将对象保存,调用的时候进行单例调用,而且,代码中不会存在 new 字眼.所有实例对象的创建和映射都在容器中实现.当然,还是用第三方的容器比较稳妥,本文中只是很简单的一个示范.具体理解的是否正确,我也不敢说,只不过,能达到一些预期的效果,功能不够强大. 解析 首先,我们先添加几个接口.ISe

比Spring简单的IoC容器

比Spring简单的IoC容器 Spring 虽然比起EJB轻量了许多,但是因为它需要兼容许多不同的类库,导致现在Spring还是相当的庞大的,动不动就上40MB的jar包, 而且想要理解Spring的内部运行机制,阅读它的代码非常重要, 但是往往它的代码非常的"多". 现在根据Spring对Bean的生命周期的处理, 编写出一款非常小的IoC容器, 没有了对XML的解析,而是通过对Config对象的构造而完成IoC配置文件的声明, 相比较XML的方式, 对重构软件非常具有好处, 并且

简单模拟IOC容器:返回对象并能抛出异常

本次要求:已知com.zzj.vo包下分别有Tiger.lion.Elephant三个Java源文件,请据此实现以下功能:①.自定义一个名为Component的注解,要求该注解只能用于类且代码运行时该注解依然有效:②.为Tiger和Lion类添加component注解③.在Application类中定义静态代码块,该代码块可自动将有Component注解修饰的类创建对象并放在Map集合中:然后定义一个名为getBean的static方法,要求传入Class类实例时返回该Class类对应类的对象,

简单模拟IOC容器:为添加了@Autowired的属性赋值(初始值)

创建@Autowired注解 package com.zzj.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //设置范围和生存周期 @Target({ElementType.TYPE,ElementType.FI

Spring技术内幕——Spring Framework的IOC容器实现(二)

三.IOC容器的初始化过程 IOC容器的初始化时由前面介绍的refresh方法来启动的,这个方法标志着IOC容器的正式启动.这个启动包括BeanDefinition的Resource定位.载入和注册.下面我们将详细分析这三个实现过程,Spring把这三个过程分开,并使用不同的模块来完成,通过这样的设计让用户更加灵活的这三个过程进行剪裁和扩展,定义出最适合自己的IOC容器的初始化过程. 第一个过程: Resource定位过程,是指BeanDefinition的资源定位,他由ResourceLoad

好记性不如烂笔头83-spring3学习(4)-spring的BeanFactory(IoC容器)

我们一般把BeanFactory叫做IoC容器,叫ApplicationContext 为应用上下文(或者Spring容器) BeanFactory是spring框架的核心,实现依赖注入[使个组件的依赖关系从代码中独立出来,使用配置文件即可实现这种依赖关系]和bean声明周期的管理 . BeanFactory[IoC容器]启动过程:分为两个阶段,一个是容器启动阶段,另外一个是Bean实例化阶段 容器启动阶段:加载配置 -–> 分析配置信息 -–>装备到BeanDefinition -–>

spring技术内幕读书笔记之IoC容器的学习

第一篇:概念和设计原理 IoC容器的实现作为Spring的核心内容之一非常有必要拿来研究一下 1.概念 IoC(Inversion of Control,控制反转)必须思考的问题:哪些方面的控制被反转了? 对于这个问题,Martin Flower给出结论是:依赖对象的获得被反转了.基于此,他为控制反转创造了一个更好的名字:依赖注入. SpringIoC模块是这一思想的一种实现,IoC容器把创建和查找依赖对象的控制权交给了容器,由容器进行注入组合对象,降低了组件之间的耦合度,利于功能复用,方便进行

自己动手开发IOC容器

前两天写简历,写了一句:精通Spring IoC容器.怎么个精通法?还是自己动手写个IOC容器吧. 什么是IoC(Inversion of Control)?什么是DI(Dependency Injection)?不多解释,自己Google!希望你先明确几个概念,该文章不做这方面的阐述,重点关注如何实现.我将用简要的语言从需求,设计,代码三方面来描述一个简单的IoC容器,来说明IoC容器是如何帮我们创建类的实例.如何实现依赖注入,最后会奉上一个完整的IoC容器实例. 一.需求,实现一个IoC容器

[译]6-Spring IOC容器

Spring容器是Spring框架的核心.Spring容器负责对象的创建.装配.以及生命周期的管理.Spring容器使用 依赖注入来管理组成应用程序的组件.Spring容器管理的这些对象我们称之为Bean. Spring容器通过读取配置元数据得知需要对哪些对象进行初始化.配置.装配等.配置元数据可以是xml配置文 件.java注解.java代码.下面这张图从较高的层面展示了Spring容器的工作原理,Spring容器使用POJO和配 置元数据来产生经过充分配置的.可运行的系统或应用程序. Spr