Spring001

2020年10月15日发布📑

又再开始读 Spring 源码,做一下笔记,方便自己回顾。

最基础的,关于 BeanFactory 接口,可以认为是容器的根基,其它功能更多的接口都是从这里扩展而来。

@Test
public void testSimpleLoad() {
    BeanFactory bf = new XmlBeanFactory(new ClassPathResource("spring.xml"));
    MyTestBean bean = (MyTestBean) bf.getBean("myTestBean");
    Assertions.assertEquals("testString", bean.getTestStr());
}

上面代码就是最基本的使用。

而对应的 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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="myTestBean" class="io.zwt.spring001.MyTestBean"/>
</beans>

至于 MyTestBean 只是一个简单的 POJO 就不列出来了。

实际开发中,很少会直接使用 BeanFactory 接口,一般使用 ApplicationContext 等。


从配置文件,到可以使用的 Bean,这个过程里边主要有以下一些步骤:

  • 读取配置文件。
  • 根据配置文件找到对应的类,并进行实例化。
  • 调用实例化后的实例。