【spring源码分析】准备工做

前言:以前写过两篇基于xml形式的IOC容器初始化过程,如今看来写的比较烂,最近又继续阅读spring源码,对IOC容器的初始化有了一些新的认识,所以决定记录下来,加深本身对spring的印象与理解。git

注:笔者fork的spring源码项目地址:https://github.com/morewindows0/spring-frameworkgithub

该项目会不按期更新,因此代码上可能会有变化。spring

spring版本:5.1.0.BUILD-SNAPSHOT(会按期合并master分支,该版本号会有改变)windows


1.调试源码准备

从github上下载源码,编译成功后,便可进行spring源码的调试工做(具体如何操做自行搜索解决便可)。因为咱们只须要对IOC相关内容进行调试,所以在spring-context模块下操做便可。程序结构以下:测试

在basebean包下建立MultiConditionBean类,并进行相关注入配置。注:采用xml形式进行配置,便于阅读与理解,注解形式的注入流程与xml形式大体相同。spa

具体代码以下:3d

xml具体配置内容以下图:调试

2.建立测试代码,进行测试

经过以上配置就能够建立测试代码进行测试了,测试代码包结构以下:code

 1     /**
 2      * xml形式注入bean
 3      */
 4     @Test
 5     public void testXmlIOC() {
 6 
 7         System.out.println("xml形式注入bean调试过程开始");
 8         // classpath*:com/dev/config/*
 9         ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:com/dev/config/multicondition.xml");
10 
11         MultiConditionBean multiConditionBean = (MultiConditionBean) context.getBean("multiConditionBean");
12 
13         System.out.println("class name:" + multiConditionBean.getClass().getName());
14 
15         System.out.println("name属性:" + multiConditionBean.getName());
16         System.out.println("gender属性:" + multiConditionBean.getGender());
17 
18         System.out.println("xml形式注入bean调试过程结束");
19     }

运行结果以下:xml

结果正确,说明未出现源码编译等相关不可知的问题,下面将正式进入IOC容器初始化的过程当中,因为spring源码体系很是的庞大,但愿本身能尽可能写清楚,搞懂相关问题,加油!


by Shawn Chen,2018.11.22日,晚

相关文章
相关标签/搜索