如何用Gradle构建并合并Spring Boot与Spring Framework源码以自定义日志?
如何通过Gradle关联Spring Framework源码并添加自定义日志
1. 准备匹配版本的Spring Framework源码并编译
- 先确认你当前Spring Boot使用的Spring Framework版本(可通过Demo项目的
./gradlew dependencies命令查看,或直接看build.gradle里的依赖声明),克隆对应分支的Spring Framework源码(比如Spring Boot 3.2.x对应Spring Framework 6.1.x分支) - 进入Spring Framework源码目录,执行编译命令跳过测试以加快速度:
编译完成后,本地Maven仓库会生成Spring Framework的jar包与源码文件。./gradlew build -x test
2. 关联Spring Framework源码到Spring Boot Demo项目
推荐使用Gradle复合构建的方式,比手动替换jar更便捷:
- 打开Spring Boot Demo项目的
settings.gradle(Groovy DSL),添加以下配置:
其中includeBuild('../spring-framework') { dependencySubstitution { // 替换所有Demo中用到的Spring Framework模块,按需添加 substitute module('org.springframework:spring-context') with project(':spring-context') substitute module('org.springframework:spring-web') with project(':spring-web') substitute module('org.springframework:spring-core') with project(':spring-core') substitute module('org.springframework:spring-beans') with project(':spring-beans') } }../spring-framework是Spring Framework源码目录相对于Demo项目的路径,根据实际位置调整。 - 若使用Kotlin DSL(
settings.gradle.kts),配置如下:
配置完成后,Gradle会自动将Demo中的Spring Framework依赖替换为本地源码项目,无需手动排除或添加jar。includeBuild("../spring-framework") { dependencySubstitution { substitute(module("org.springframework:spring-context")).using(project(":spring-context")) substitute(module("org.springframework:spring-web")).using(project(":spring-web")) // 其他模块同理添加 } }
3. 在Spring Framework源码中添加个性化日志
- 找到你需要添加日志的类(比如
org.springframework.context.support.AbstractApplicationContext),利用Spring Framework已集成的SLF4J添加日志:import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AbstractApplicationContext extends DefaultResourceLoader implements ConfigurableApplicationContext { private static final Logger logger = LoggerFactory.getLogger(AbstractApplicationContext.class); // 在目标方法中插入自定义日志 @Override public void refresh() throws BeansException, IllegalStateException { logger.info("【自定义日志】开始执行ApplicationContext刷新流程"); // 原有业务代码... } } - 修改完成后,编译对应的Spring Framework模块(比如修改了spring-context就编译该模块):
cd spring-framework ./gradlew :spring-context:build -x test
4. 调试并查看自定义日志
- 在IDE中打开Spring Boot Demo项目,此时IDE会自动关联Spring Framework的源码,可直接在修改的类上设置断点
- 启动Demo的调试模式,运行后就能在控制台看到你添加的个性化日志输出,同时可以正常调试Spring Framework的源码逻辑
内容的提问来源于stack exchange,提问作者huang.guangbing
相关产品推荐
相关产品推荐

