专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

【spring源码分析】准备工作

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

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

该项目会不定期更新,所以代码上可能会有变化。

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


1.调试源码准备

从github上下载源码,编译成功后,即可进行spring源码的调试工作(具体如何操作自行搜索解决即可)。由于我们只需要对IOC相关内容进行调试,因此在spring-context模块下操作即可。程序结构如下:

108_1.png

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

具体代码如下:

108_2.png

xml具体配置内容如下图:

108_3.png

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

通过以上配置就可以创建测试代码进行测试了,测试代码包结构如下:

108_4.png

     /**
      * xml形式注入bean
      */
     @Test
     public void testXmlIOC() {

         System.out.println("xml形式注入bean调试过程开始");
         // classpath*:com/dev/config/*
         ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:com/dev/config/multicondition.xml");

         MultiConditionBean multiConditionBean = (MultiConditionBean) context.getBean("multiConditionBean");

         System.out.println("class name:" + multiConditionBean.getClass().getName());

         System.out.println("name属性:" + multiConditionBean.getName());
         System.out.println("gender属性:" + multiConditionBean.getGender());

         System.out.println("xml形式注入bean调试过程结束");
     }

运行结果如下:

108_5.png

结果正确,说明未出现源码编译等相关不可知的问题,下面将正式进入IOC容器初始化的过程中,由于spring源码体系非常的庞大,希望自己能尽量写清楚,搞懂相关问题,加油!


by Shawn Chen,2018.11.22日,晚

出处:https://www.cnblogs.com/developer_chan/category/1347173.html

文章永久链接:https://tech.souyunku.com/13664

未经允许不得转载:搜云库技术团队 » 【spring源码分析】准备工作

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们