likes
comments
collection
share

撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

作者站长头像
站长
· 阅读数 33

这篇博文你可以了解到:

1 Spring jar包以及源码使用

2 简单的spring运行示例

3 利用断点调试程序,如何快速的阅读程序【快捷键等的使用】

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

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

撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

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

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

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

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

撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

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

撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

  选择相应的source源码包

撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

  全部导入后,如下

撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

spring样例

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

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

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

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

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

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

  运行结果

撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

阅读源码

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

撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

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

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的类图关系:

  撸了阿里大神写的Spring源码后,感觉之前读的都是渣渣!

转载自:https://juejin.cn/post/6988036190838456328
评论
请登录