宝子们,在前面写过一片简单的springIOC仿写,感觉太简单了,只是简单的理解过程,现在基于源码又写一份源码,Atuowire ,Componen,Scope 等等注解均进行了实现,单例多例的实现,依赖注入,初始化方法,AOP的proxy动态代理,Cjlib代理正在实现,更新完成我会立马上传,每一步都有详细的注释欢迎来踩,附源码Zth的源码库
截图代码
?部分源码
public Object getBean(String beanName) {
BeanDefinition beanDefinition = beanDefinitionHashMap.get(beanName);
if (beanDefinition == null) throw new NullPointerException();
else {
if ("singlenton".equals(beanDefinition.getScope())) {//判断是否单例
bean = singletonObjedctMap.get(beanName);
if (bean == null) {//双重校验锁
synchronized (bean) {
if (bean == null) {
bean = creatBean(beanName, beanDefinition);
singletonObjedctMap.put(beanName, bean);//创建并放入单力池
}
return bean;
}
} else {
return bean;
}
} else {
//多例处理
return creatBean(beanName, beanDefinition);
}
}
}
|