一个比Spring简单的IoC容器

Spring 虽然比起EJB轻量了许多,但是因为它需要兼容许多不同的类库,导致现在Spring还是相当的庞大的,动不动就上40MB的jar包, 而且想要理解Spring的内部运行机制,阅读它的代码非常重要, 但是往往它的代码非常的"多".

现在根据Spring对Bean的生命周期的处理, 编写出一款非常小的IoC容器, 没有了对XML的解析,而是通过对Config对象的构造而完成IoC配置文件的声明, 相比较XML的方式, 对重构软件非常具有好处, 并且这个IoC大部分的实现是依据Spring的运行过程来编写的, 具有完整的生命周期管理,  支持singletons,prototype, 两种类型的Bean生成, 支持@Component,@Autowired , 包扫描等特性(和Spring差不多).

一下是一段test代码:

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/

这个是自动扫描的方式进行配置.

注: 该项目没有使用什么maven等构建, 直接通过eclipse导入web 动态网站即可, 测试代码在test.mvc.App.java中

一下是该项目的地址:

https://github.com/y2k0103/ioc

时间: 2024-12-22 09:22:15

一个比Spring简单的IoC容器的相关文章

浅析Java的Spring框架中IOC容器容器的应用_java

Spring容器是Spring框架的核心.容器将创建对象,它们连接在一起,配置它们,并从创建到销毁管理他们的整个生命周期.在Spring容器使用依赖注入(DI)来管理组成应用程序的组件.这些对象被称为Spring Beans. 容器获得其上的哪些对象进行实例化,配置和组装通过阅读提供的配置元数据的说明.配置元数据可以通过XML,Java注释或Java代码来表示.下面的图是Spring如何工作的高层次图. Spring IoC容器是利用Java的POJO类和配置元数据的产生完全配置和可执行的系统或

重新学习Spring之核心IOC容器的底层原理

一:IOC容器的定义 控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心. 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找.依赖注入应用比较广泛.   二:Ioc容器相关含义 许多强大的功能都是由两个或是更多的类通过彼此的合作来实现业务逻辑,这使得每个对象和其他的对象产生依赖或者关联.(也就是对象持有其他对象的引用).如果这个获取过程

Spring源代码解析(一):IOC容器

在认真学习Rod.Johnson的三部曲之一:< >,顺便也看了看源代码想知道个究竟,抛砖引玉,有兴趣的同志一起讨论研究吧! 以下内容引自博客:http://jiwenke-spring.blogspot.com/,欢迎指导:) 在Spring中,IOC容器的重要地位我们就不多说了,对于Spring的使用者而言,IOC容器实际上是什么呢?我们可以说BeanFactory就是我们看到的IoC容器,当然了Spring为我们准备了许多种IoC容器来使用,这样可以方便我们从不同的层面,不同的资源位置,

Spring.net(二)----初探IOC容器

我在上一篇关于Spring.net的文章"Spring.NET框架简介及模块说明 "中很详细的介绍了,本文就不旧话从提.我门就直奔主题吧. 1.首先了解两个接口. IObjectFactory接口和IApplicationContext接口:他两个称为"容器"或"IOC容器". Spring.net框架的核心原则是非侵入性. IObjectFactory接口是初始化.配置及管理对象的实际容器. IObjectFactory全限定名为Spring.

Spring的IoC容器实现原理(一)#loadBeanDefinition

Spring有十几个组件,核心组件为bean(演员)-context(舞台)-core(道具) bean包装的是object,而object中肯定要有数据,如何给这些数据提供生存环境就是context要解决的问题,对于context来说他就是要发现每个bean之间的关系,为他们建立起来并维护好这些关系.所以context就是一个bean关系的集合,这个关系集合就是我们常说的IOC容器.core组件就是发现.建立和维护每个bean之间的关系所需要的一些工具,把core叫做util更为贴切.   

《Spring技术内幕》——2.3节IoC容器的初始化过程

2.3 IoC容器的初始化过程 简单来说,IoC容器的初始化是由前面介绍的refresh()方法来启动的,这个方法标志着IoC容器的正式启动.具体来说,这个启动包括BeanDefinition的Resouce定位.载入和注册三个基本过程.如果我们了解如何编程式地使用IoC容器,就可以清楚地看到Resource定位和载入过程的接口调用.在下面的内容里,我们将会详细分析这三个过程的实现. 在分析之前,要提醒读者注意的是,Spring把这三个过程分开,并使用不同的模块来完成,如使用相应的Resourc

《Spring技术内幕》——2.2节IoC容器系列的设计与实现:BeanFactory和ApplicationContext

2.2 IoC容器系列的设计与实现:BeanFactory和ApplicationContext在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能:另一个是ApplicationContext应用上下文,它作为容器的高级形态而存在.应用上下文在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境作了许多适配.有了这两种基本的容器系列,基本上可以满足用户对IoC容器使用的大部分需求了.下面

Spring IOC容器源码浅析

控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心.      控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找.依赖注入应用比较广泛.      将控制权从具体的对象手中交给平台或者是框架. BeanFactory是基本的功能接口 public interface BeanFactory { //这里是对FactoryBean的转义定

Spring源代码解析(二):IOC容器在web容器中的启动

以下引用自博客:http://jiwenke-spring.blogspot.com/ 上面我们分析了IOC容器本身的实现,下面我们看看在典型的web环境中,Spring IOC 容器是怎样被载入和起作用的. 简单的说,在web容器中,通过ServletContext为Spring的IOC容器提供宿主环境,对 应的建立起一个IOC容器的体系.其中,首先需要建立的是根上下文,这个上下文持有的 对象可以有业务对象,数据存取对象,资源,事物管理器等各种中间层对象.在这个上下 文的基础上,和web MV