标签:过程 流程 编译 pre lap 初始化过程 app 决定 out
前言:之前写过两篇基于xml形式的IOC容器初始化过程,现在看来写的比较烂,最近又继续阅读spring源码,对IOC容器的初始化有了一些新的认识,因此决定记录下来,加深自己对spring的印象与理解。
注:本人的spring源码项目地址:https://github.com/morewindows0/spring-framework/tree/dev_spring
从github上下载源码,编译成功后,即可进行spring源码的调试工作(具体如何操作自行搜索解决即可)。由于我们只需要对IOC相关内容进行调试,因此在spring-context模块下操作即可。程序结构如下:
在basebean包下创建User类,并进行相关注入配置。注:采用xml形式进行配置,便于阅读与理解,注解形式的注入流程与xml形式大致相同。
具体代码如下:
xml具体配置内容如下图:
通过以上配置就可以创建测试代码进行测试了,测试代码包结构如下:
1 /** 2 * xml形式注入bean 3 */ 4 @Test 5 public void testIOC() { 6 7 System.out.println("xml形式注入bean调试过程开始"); 8 9 ApplicationContext context = new ClassPathXmlApplicationContext("com/debug/config/User.xml"); 10 11 User user = (User) context.getBean("user"); 12 13 System.out.println("class name:" + user.getClass().getName()); 14 15 System.out.println("name属性:" + user.getName()); 16 System.out.println("gender属性:" + user.getGender()); 17 18 System.out.println("xml形式注入bean调试过程结束"); 19 }
运行结果如下:
结果正确,说明未出现源码编译等相关不可知的问题,下面将正式进入IOC容器初始化的过程中,由于spring源码体系非常的庞大,希望自己能尽量写清楚,搞懂相关问题,加油!
by Shawn Chen,2018.11.22日,晚
标签:过程 流程 编译 pre lap 初始化过程 app 决定 out
原文地址:https://www.cnblogs.com/morewindows0/p/10004199.html