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。
网友评论