You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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源码目录,执行编译命令跳过测试以加快速度:
    ./gradlew build -x test
    
    编译完成后,本地Maven仓库会生成Spring Framework的jar包与源码文件。

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),配置如下:
    includeBuild("../spring-framework") {
        dependencySubstitution {
            substitute(module("org.springframework:spring-context")).using(project(":spring-context"))
            substitute(module("org.springframework:spring-web")).using(project(":spring-web"))
            // 其他模块同理添加
        }
    }
    
    配置完成后,Gradle会自动将Demo中的Spring Framework依赖替换为本地源码项目,无需手动排除或添加jar。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 14:05:12