IOC启动原理
1.加载配置XML 配置 ; 或者 配置类
2.解析配置(xml Dom解析) ; 或者扫描被管理的类上的注解(@Service等等)
3.对Bean进行定义和封装成BeanDefinition
4.通过BeanDefinitionRegistry注册BeanDefinition到一个ConcurrentHashMap 中
5.如果Bean是迫切初始化就会根据BeanDefinition通过反射创建Bean的实例,缓存到一个HashMap中
6.当通过容器getBean的时候,如果是单例的,就会从缓存的Map中去取Bean,取不到就用反射创建,并添加到缓存,返回
7.当通过容器getBean的时候,如果不是单例的,就每次使用反射重新创建Bean的实例返回