作为spring框架中的重要思想,ioc(控制反转)是面试中的常客。关于如何理解ioc容器,可以通过自己实现一个简单的ioc容器来领会
步骤分析
简单来说,ioc就是实现了通过配置文件创建对象功能,核心部分就是依赖注入,实现步骤如下:
- 加载配置文件
- 遍历bean标签,获取id和class值
- 加载class类并创建bean
- 遍历 < property > 标签,把属性值填充到相关字段
- 把bean注册到容器当中
IOC容器实现类
直接看代码和注释:
private Map<String, Object> beanmap = new HashMap<String, Object>();
public IOCDemo(String location) throws Exception {
loadBeans(location);
}
private void loadBeans(String location) throws Exception {
// 读取配置文件
InputStream is = new FileInputStream(location);
// 读入.xml文档需要一个DocumentBuilder对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = factory.newDocumentBuilder();
// 通过java IO 流的读取文件
Document document = docBuilder.parse(is);
Element root = document.getDocumentElement();
NodeList nodes = root.getChildNodes();
// 遍历bean标签
for (int i =