教你看spring框架源码。。。 好像也不难!!!
ioc原理 : 反射 + dom4j解析xml
配置文件方式加载bean,其中的beanDefinition信息是在refresh()—>obtainFreshBeanFactory()—>refreshBeanFactory()实现的
注解方式加载bean,其中的beanDefinition信息是在下图中实现的
最终是在这个类中,下图方法中注入的
下面我们主要分析的是XML配置文件形式的依赖注入
其他方式的注册大同小异,所谓的ioc容器就是一个一个的map,为什么控制反转了呢,因为你把本应该jvm管理的对象放进了spring中的map里,由它自己进行管理了!