Spring源码解析——如何阅读源码

超、凢脫俗 2022-07-16 10:46 483阅读 0赞

如何使用jar包以及源码的source包

  首先,在工程右键,属性中,添加必要的jar包。

222033469219538.png

  选中必要的jar包,上面给出的源码jar包中,导入spring3.0.5中的所有jar包。

  其中lib内的是spring的jar包,用到哪个导入哪个,不知道的话,全部导入就行了。

  外面的几个jar包,用于日志以及mysql的驱动。commons-logging jar包是必须的,其他的随意吧。

  不确定的话,lib外面的这几个jar包以及lib里面的都导入就行了。

222036574373969.png

  导入jar包后,点开jar包,选中source attachment进行编辑,链接到源码的jar包。

222037265932462.png

  选择相应的source源码包

222038437024405.png

  全部导入后,如下

222039113432927.png

spring样例

  首先是一个必要的POJO类,用于注入属性的值。

复制代码

  1. 1 package com.test.bean;
  2. 2
  3. 3 public class Person {
  4. 4
  5. 5 private String name;
  6. 6 private int age;
  7. 7
  8. 8 public String getName() {
  9. 9 return name;
  10. 10 }
  11. 11 public void setName(String name) {
  12. 12 this.name = name;
  13. 13 }
  14. 14 public int getAge() {
  15. 15 return age;
  16. 16 }
  17. 17 public void setAge(int age) {
  18. 18 this.age = age;
  19. 19 }
  20. 20 public void info(){
  21. 21 System.out.println("name:"+getName()+" age:"+getAge());
  22. 22 }
  23. 23 }

复制代码

  主函数,用于读取资源文件,获取bean,调用info方法

复制代码

  1. 1 package testSpring;
  2. 2
  3. 3 import org.springframework.context.ApplicationContext;
  4. 4 import org.springframework.context.support.ClassPathXmlApplicationContext;
  5. 5
  6. 6 import com.test.bean.Person;
  7. 7
  8. 8 public class test {
  9. 9 public static void main(String[] args){
  10. 10 ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//读取bean.xml中的内容
  11. 11 Person p = ctx.getBean("person",Person.class);//创建bean的引用对象
  12. 12 p.info();
  13. 13 }
  14. 14 }

复制代码

  bean.xml用于配置bean的资源文件

复制代码

  1. 1 <?xml version="1.0" encoding="UTF-8"?>
  2. 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. 3 xmlns="http://www.springframework.org/schema/beans"
  4. 4 xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. 5 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
  6. 6 <bean id="person" class="com.test.bean.Person">
  7. 7 <property name="name" value="xingoo"/>
  8. 8 <property name="age" value="12"/>
  9. 9 </bean>
  10. 10 </beans>

复制代码

  运行结果

222047255627573.png

阅读源码

  首先,有了前面的jar包以及源码包,你就可以通过这个简单的程序,进行但不的调试,阅读源码。

222049528584707.png

  简单的说下调试的快捷键:

  1 F5:下一步,可以进入下一个函数栈

  2 F6:当前函数的下一步,不会进入其他的函数。

  3 F8:下一个断点。

  4 也可以通过选中一个变量或者表达式,按ctrl+shift+i 来查看内容。或者添加监视的方式,查看。

  5 可以通过快捷键F2,来查看一个函数方法的javadoc,即说明

  6 快捷键F3或者ctrl+鼠标点击,进入一个函数

  7 ctrl+shift+G 查看当前方法都有谁在使用

  8 F4查看类的继承关系,可以向上显示出类继承的父类以及接口。

  有了调试的方法,接下来,就是如何阅读源码了!

  1 参考书籍,推荐《Spring技术内幕》

  这本书,基本上很详细的讲述了,spring的实现方式,以及类之间的复杂关系。可以帮助你快速的理清复杂的类之间的关系。

  2 使用StarUML画类图

  比如你好不容易理清了一个部分的关系,很快就会忘记其中的关系,那么可以通过这个工具,简单的画出其中的复杂关系。

  这样,下一次看的时候也会清楚一些,这是我今天刚画好的ClassPathXmlApplicationContext的类图关系:

  222054585777809.png

发表评论

表情:
评论列表 (有 0 条评论,483人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Spring解析——如何阅读

    >   最近没什么实质性的工作,正好有点时间,就想学学别人的代码。也看过一点源码,算是有了点阅读的经验,于是下定决心看下spring这种大型的项目的源码,学学它的设计思想。 >

    相关 如何阅读

    一、[昨夜西风][Link 1]凋碧树,独上高楼,望尽天涯路 想把源码搞懂,吃透,首先得登高望远,瞰察路径,明确目标与方向,了解源码的概貌。所以有些准备工作必须得做。阅读