美文网首页
手写框架探险系列-confin2的BeanHelper和spri

手写框架探险系列-confin2的BeanHelper和spri

作者: 潇潇洒洒的写书 | 来源:发表于2019-05-01 21:34 被阅读0次

    apache BeanHelper源码解析

    • 在编写config模块中,需要把apache的config2模块整合,在这过程中发现里面既然有个简单的BeanHelper。他是final的,但是构造方法有
    public BeanHelper(BeanFactory defFactory)
        {
            defaultBeanFactory =
                    (defFactory != null) ? defFactory : DefaultBeanFactory.INSTANCE;
        }
    
    • BeanFactory 是我们可以自己实现的。其中接口仅仅有2个方法
        
        Object createBean(BeanCreationContext bcc) throws Exception;
    
        Class<?> getDefaultBeanClass();
    
    

    可以看到也就一个有用的方法,createBean需要一个上下文环境,这里是不是和Spring的工厂有些相似

    • 但是这个BeanCreationContext也就几个重要的方法
    
        Class<?> getBeanClass();
        BeanDeclaration getBeanDeclaration();
        void initBean(Object bean, BeanDeclaration data);
        Object createBean(BeanDeclaration data);
    
    

    可以看到这里面也就是一个create、init方法,没有spring生命周期这么多口子。

    • 而且BeanHelper默认的作用域是多例的,交给用户管理的。

    总结

    • spring的生命周期必apache的多。
    • 作用域类型也比apache的多。
    • apache是简单的ioc容器
    • 但是这里都不是我们的重点,我这里需要做的是管理ioc。

    参考资料

    相关文章

      网友评论

          本文标题:手写框架探险系列-confin2的BeanHelper和spri

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