在idea中看spring源码

一、搭建环境

1.1 下载源码到本地

在github中找到spring-framework项目,或者这个地址(https://github.com/spring-projects/spring-framework

然后把项目下载到本地目录,如图

1.2 然后用idea打开这个项目

1.3 然后等构建,我这里耗时比较久,要等构建成功

二、新增模块

2.1 新增模块,命名my-spring

2.2 在新建模块的build.gradle.kts文件添加依赖

复制代码
    implementation(project(":spring-context"))
	implementation(project(":spring-beans"))
	implementation(project(":spring-core"))
	implementation(project(":spring-aop"))

如图:

2.3 更新依赖,如图

2.4 创建实体类TestBean,如图

2.5 增加spring.xml文件

XML 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean id="testBean" class="org.springframework.bean.TestBean">
		<property name="id" value="100"></property>
		<property name="name" value="Tom"></property>
	</bean>
</beans>

​​​​​如图

2.6 在main方法加载xml

XML 复制代码
package org.springframework;

import org.springframework.bean.TestBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
	public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
		TestBean testBean = context.getBean("testBean", TestBean.class);
		System.out.println("Hello ," + testBean.getName());
	}
}

​如图

三、查看源码

3.1 debug ClassPathxmlapplicationContext类,启动程序,进入该类。

3.2 进入该类后,一直往下走,走到AbstractApplicationContext类的​​​​​​​refresh()方法,这块就是spring的核心代码了,如图

​​​​​​

到这步就可以慢慢看spring的核心代码了!

相关推荐
汤姆yu1 小时前
IDEA接入Claude Code保姆级教程(Windows专属+衔接前置安装)
java·windows·intellij-idea·openclaw·openclasw安装
96777 小时前
理解IOC控制反转和spring容器,@Autowired的参数的作用
java·sql·spring
送我上青云|7 小时前
告别繁琐命令行:VS Code CMake Tools 环境配置极简指南
ide·visual studio code
青槿吖10 小时前
【保姆级教程】Spring事务控制通关指南:XML+注解双版本,避坑指南全奉上
xml·java·开发语言·数据库·sql·spring·mybatis
mygljx10 小时前
spring-ai 下载不了依赖spring-ai-openai-spring-boot-starter
java·人工智能·spring
jaysee-sjc11 小时前
【练习十二】Java实现年会红包雨小游戏
java·开发语言·算法·游戏·intellij-idea
小涛不学习11 小时前
Java 后端核心框架面试题(Spring / SpringMVC / MyBatis / MyBatis-Plus)
java·spring·mybatis
百锦再11 小时前
飞算 JavaAI:我的编程强力助推引擎
java·spring·ai·编程·idea·code·飞算
a56299161913 小时前
【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目
java·spring boot·spring
代码探秘者15 小时前
【大模型应用】4.分块之六大策略
java·数据结构·后端·python·spring