Java初级读源码_spring 源码阅读入门

spring和源码3.0.5下载

参考文章

首先新建一个Java项目;

20191102100822_1.png

解压后的spring包是如下的结构;

20191102100822_2.png

dist内是发布的包;

20191102100822_3.png

src内是对应的源码包;

20191102100822_4.png

项目属性导入全部的dist下的包,还有mysql-connector,commons-logging等;完成后如下图;

或者光导入项目用到的包也可;

20191102100822_5.png

点开一个导入的spring dist包,点击Source attachment,点击 Edit 按钮;

20191102100822_6.png

添加源码包的路径,即src下的包的路径;如下图;

发布包和源码包一个个对应的;

20191102100822_7.png

添加好之后如下;

20191102100822_8.png

20191102100822_9.png

完成上述后项目结构如下;

20191102100822_10.png

新建如下的包,类,文件;

20191102100822_11.png

代码;

Person.java

package com.test.bean;

public class Person {

private String name;

private int age;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public void info(){

System.out.println("name:"+getName()+" age:"+getAge());

}

}

test.java

package testSpring;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.test.bean.Person;

public class test {

public static void main(String[] args){

ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//读取bean.xml中的内容

Person p = ctx.getBean("person",Person.class);//创建bean的引用对象

p.info();

}

}

bean.xml

xmlns="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

项目运行结果如下;

20191102100822_12.png

ApplicationContext ctx = new ClassPathXmlApplicationContext(“bean.xml”);//读取bean.xml中的内容

Person p = ctx.getBean(“person”,Person.class);//创建bean的引用对象

这两句下断点;然后开始debug;

停留在断点;

20191102100822_13.png

打F5,进入下一个函数;进到spring源码了;因为前面附着了spring源码包,对应的spring源码函数显示出来;

20191102100822_14.png

F5,下一个函数;

20191102100822_15.png

F5,下一个函数;

20191102100822_16.png

F5,下一个函数;

20191102100822_17.png

F5,下一个函数;

20191102100822_18.png

F5,下一个函数;

看到一列的函数调用,这个就是传说中的栈帧了;

20191102100822_19.png

如果进到没有附着源码的函数,则会提示Source not found,如上图;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值