spring源码解析--基础容器XmlBeanFactory 加载过程 青旅半醒 2022-05-23 02:56 148阅读 0赞 # 一、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会使用相应的编码作为输出流的编码 ![70][] ## 2、获取输入流并构造InputSource ## ![70 1][] ## 3、调用函数doLoadBeanDefinitions核心部分 ## ![70 2][] ## 4、注册Bean,然后返回注册的条数 ## ![70 3][] ## 5、把source转成XmlBeanFactory ## ![70 4][] [70]: /images/20220523/31a1df0ed0f04be4b8ed780fa6effe49.png [70 1]: /images/20220523/b5b5bd2c018741b8854b6eab08c20088.png [70 2]: /images/20220523/72d6a3bdefca47a39a6b4c79de8a815b.png [70 3]: /images/20220523/784fe6d0198d4a5b9e8dd25375014f8e.png [70 4]: /images/20220523/25832ff972514a4496396212dde417b0.png
还没有评论,来说两句吧...