Spring探秘0:源码构建

       从源码构建出Spring框架运行,方便探索Spring源码。

构建环境

  • OS: MacOS 10.15.2
  • JDK 1.8
  • Spring 源码版本:5.1.x
  • Gradle: 项目源码自带的Gardle Wrapper(gradlew)
  • IntelliJ IDEA Ultimate 2019.3.3

构建过程

  1. 下载源码:直接从GitHub下载Srping-framework的源码,项目地址为https://github.com/spring-projects/spring-framework ,下载源码压缩包时要注意选择正确的版本分支。
  2. 解压源码压缩包后,在源码目录下执行以下命令,进行构建(排除了test和javadoc两个任务,因为这两个任务都很耗时间而且没用):
./gradlew build -x test -x javadoc
  1. 等待构建完成,如果某个任务卡了很久,可以ctrl-c停掉,再重新开始,之前的构建记录会有保存;如果下载依赖的速度很慢,可以在build.gradle中配置本地的镜像,或者开启科学上网。
  2. 构建成功会有以下提示:
    success
  3. 构建成功后可以导入到IntelliJ IDEA中。(通过Start up 界面或者 File -> New -> Project from Exsisting Sources… )
    startup
    import
  4. 稍等片刻,等待其配置完成,构建过程就结束了。

(如果直接在IDEA中构建,会出现各种各样奇怪的问题,上面的过程我试了几次,比较稳定。)

基于源码运行Spring框架

       构建成功后,可以编写一个启动类,基于源码运行Spring应用。

  1. 在源码根项目下新建一个模块:File -> New -> Module…
    newmodule
    modulename
  2. 稍等片刻,在IDEA设置完成后,在新建模块的build.gradle文件中的dependencies块中添加对spring-context的依赖,并在Gradle工具栏中刷新依赖(reimport):
    dependencies
  3. 完成后,就可以在新模块中使用Spring-framework提供的类了。在该模块下新建三个类,分别是配置类、启动类和一个Bean:
    structure
    三个类的代码:
@Configuration
@ComponentScan("cn.litiezhu.springdemo")
public class AppConfig {
}
public class DemoApp {
    public static void main(String[] args) {
        ApplicationContext context =
            new AnnotationConfigApplicationContext(AppConfig.class);

        DemoComponent component = context.getBean(DemoComponent.class);
        component.foo();
    }
}
@Component
public class DemoComponent {
    public void foo() {
        System.out.println("DemoComponent.foo()");
    }
}

运行DemoApp.main(),能够得到正确的输出,构建过程就正式宣告成功了!接下来就可以在这个项目中调试Spring源码了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值