手写框架探险系列-confin2的BeanHelper和spring的iocFactory的区别

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。

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值