美文网首页
自己写一个Spring框架: 01 简单的IOC容器

自己写一个Spring框架: 01 简单的IOC容器

作者: zhang5788 | 来源:发表于2018-08-21 14:19 被阅读70次

    这里就不再介绍Spring的IOC是什么了,我们直接开始写代码吧,不知道的可以看一下百度百科中关于IOC的介绍.

    划清层次

    Spring中,由于所有的引用都是通过IOC来解耦合的,我们在实现这个容器之前,需要先通过我们平常对容器的使用,来反推一下Spring内部的实现过程.

    大致可以分为:

    1. 将需要实例化的对象标记(注解方式)或着是定义好实体类,将对象注入(xml方式)
    2. 直接使用

    这样,我们就直接将一个对象的实例化和使用解耦合了.期间的所有工作都由spring容器进行完成.

    推测如何实现

    通过我们的使用,可以很简单的想出:

    1. spring内部维护有一个容器,来管理所有的实例化对象
    2. 这个容器具有最基本的保存对象,取出对象等方法.

    代码实现

    由于需要按对象名称取出对象,所以我们可以用一个Map容器来实现.
    我们定义一个最基本的类BeanFactory
    BeanFactory作为基本的容器,来管理对象

    代码如下

    public class BeanFactory {
        private Map<String, Object> beanDefinitionMap = new ConcurrentHashMap<>();
        
        public Object getBean(String beanName) {
            return beanDefinitionMap.get(beanName);
        }
        
        public void setBean(String beanName, Object bean) {
            
            beanDefinitionMap.put(beanName, bean);
        }
        
    }
    

    这样,就完成了一个最简单IOC容器,只是对Map简单封装了一下,当然还有很多功能没做,我们就逐渐完善这个类,直到实现一个功能完善的IOC容器.

    相关文章

      网友评论

          本文标题:自己写一个Spring框架: 01 简单的IOC容器

          本文链接:https://www.haomeiwen.com/subject/iuadiftx.html