美文网首页
手写框架探险系列-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