1. 程式人生 > >spring原始碼解析--基礎容器XmlBeanFactory 載入過程

spring原始碼解析--基礎容器XmlBeanFactory 載入過程

一、demo示例

1、實體類

package cn.jin.test;

public class MyTestBean {
	
	private String str = "this is test";

	public String getStr() {
		return str;
	}

	public void setStr(String str) {
		this.str = str;
	}
	
}

2、配置beanFactoryTest.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="testBean" class="cn.jin.test.MyTestBean"></bean>
</beans>

3、讀取

@SuppressWarnings("deprecation")
	public static void main(String[] args) {
		XmlBeanFactory xmlBean = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
		MyTestBean bean = (MyTestBean)xmlBean.getBean("testBean");
		System.out.println(bean.getStr());
		//SpringApplication.run(Application.class, args);
	}

二、讀取配置檔案解析

1、封裝資原始檔

在讀取到這個類XmlBeanDefinitionReader對引數編碼,如果設定編碼,spring會使用相應的編碼作為輸出流的編碼


2、獲取輸入流並構造InputSource


3、呼叫函式doLoadBeanDefinitions核心部分


4、註冊Bean,然後返回註冊的條數


5、把source轉成XmlBeanFactory