最近打算详细的研究下SpringBoot源码,感兴趣的可以一起哦。

SpringBoot源码环境准备

  对于想要研究SpringBoot源码的小伙伴来说,在本地编译源码环境,然后在研究源码的时候可以添加对应的注释是必须的,本文就给大家来介绍下如何来搭建我们的源码环境。

1.官方源码下载

  首先大家要注意SpringBoot项目在2.3.0之前是使用Maven构建项目的,在2.3.0之后是使用Gradle构建项目的。后面分析的源码以SpringBoot2.2.5为案例,所以本文就介绍下SpringBoot2.2.5的编译过程。

  官网地址:https://github.com/spring-projects/spring-boot

直接下载对于的压缩文件即可

  下载后直接解压缩即可

2.本地源码编译

  把解压缩的源码直接导入到IDEA中,修改pom文件中的版本号。

pom文件中提示 disable.checks属性找不到,我们添加一个即可。

 <properties><revision>2.2.5.snapshot</revision><main.basedir>${basedir}</main.basedir><!-- 添加属性 --><disable.checks>true</disable.checks></properties>

然后执行编译命令

mvn clean install -DskipTests

然后控制台出现如下错误

按照提示,执行下面的 命令 就好了:

在执行编译命令就可以了

mvn clean install -DskipTests

3.源码环境使用

  既然源码已经编译好之后我们就可以在这个项目中来创建我们自己的SpringBoot项目了,我们在 spring-boot-project项目下创建 module,

  然后在我们的module中添加对应的start依赖

然后添加我们的启动类

项目能够正常启动

同时点击run方法进去,我们可以添加注释了:

  在其他项目使用我们编译的源码,这个可能是大家比较感兴趣的一个点了,我们也来介绍下,依赖我们还是可以使用官方的依赖即可,不过最好还是和我们编译的版本保持一致。

  主要是关联上我们编译的源码。

修改代码

好了到此我们就可以开启SpringBoot的源码探索之旅了哦。有不清楚的欢迎留言讨论哦。

工欲善其事必先利其器-SpringBoot源码研究之源码编译相关推荐

  1. Apache Camel源码研究之Rest

    本文以Camel2.24.3 + SpringBoot2.x 为基础简单解读Camel中的Rest组件的源码级实现逻辑. 0. 目录 1. 前言 2. 源码解读 2.1 启动时 2.1.1 `Rest ...

  2. 基于微信小程序的springboot客运汽车票购票系统源码和论文

    在客运公司工作 7 年之余,对客运管理的难度深有感触.特别是在春运期 间购票难依旧是长途汽车订票的一大难题.长途汽车和火车的订票管理虽然有 差异,但大体上是相同的.长途汽车在售票的过程中需要对旅客的起 ...

  3. 基于java SpringBoot的医院门诊管理系统源码和论文

    医院门诊信息管理系统是一个基于Internet的应用系统,它是一个面对当前的医院门诊管理工作基本还处于手工和半信息自动化处理状态而应运而生的一个基于Internet的一个信息自动化的系统,整个系统从符 ...

  4. 深入研究ConcurrentHashMap 源码从7到8的变迁

    ConcurrentHashMap是线程安全且高效的HashMap 1 为什么要使用ConcurrentHashMap 线程不安全的HashMap HashMap是Java中最常用的一个Map类,性能 ...

  5. 一起谈.NET技术,.NET Framework源码研究系列之---万法归宗Object

    经过前面三篇关于.NET Framework源码研究系列的随笔,相信大家都发现其实.NET Framework的实现其实并不复杂,也许跟我们自己做的项目开发差不多.本人也是这样的看法.不过,经过仔细深 ...

  6. Apache Jackrabbit源码研究(五)

    上文最后提到jackrabbit的检索默认实现类QueryImpl,先熟悉一下该类的继承层次 QueryImpl继承自抽象类AbstractQueryImpl,而抽象类实现了Query接口(JCR的接 ...

  7. Nginx源码研究之nginx限流模块详解

    这篇文章主要介绍了Nginx源码研究之nginx限流模块详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 高并发系统有三把利器:缓存.降级和限流: 限流的目的是通过对并 ...

  8. SpringMVC关于json、xml自动转换的原理研究[附带源码分析 --转

    SpringMVC关于json.xml自动转换的原理研究[附带源码分析] 原文地址:http://www.cnblogs.com/fangjian0423/p/springMVC-xml-json-c ...

  9. vue 二维数组_最近研究Vue源码时我发现的一些好玩函数

    来源 | segmentfault.com/u/chinamasters 作者 | chinamasters 最近在深入研究vue源码,把学习过程中,看到的一些好玩的的函数方法收集起来做分享,希望对大 ...

  10. freemarker入门实例与源码研究准备工作

    首先去freemarker官网下载源码jar包,本文是基于freemarker-2.3.21.tar.gz进行研究的.解压源码包,找到freemarker的源码部分导入eclipse工程中.需要注意的 ...

最新文章

  1. 转载【C】堆区和栈区的区别
  2. 管理的实践-彼得.德鲁克
  3. 思科路由器DHCP基础配置
  4. 如何利用Partitioner将消息路由到分区?
  5. SQLite添加列的限制
  6. Java——匿名内部类实现线程的两种方式
  7. BestCoder Round #86 1002 HDU 5805 ——NanoApe Loves Sequence
  8. 吴恩达《机器学习》学习笔记十二——机器学习系统
  9. CCF201312-5 I’m stuck
  10. 53 -leetcode 7. 整数反转
  11. ios php 聊天_解析php做推送服务端实现ios消息推送
  12. uboot引导内核全过程
  13. 安国主控au6983、au698x fc8708 量产失败修复过程。载入韧体数据失败\坏磁区过多\读坏块表错误...
  14. AutoCAD2018_输出与打印
  15. Gensim的维基百科语料库中文词向量训练错误整理
  16. 彻底解决Missing privilege separation directory: /run/sshd
  17. 一种基于波状扩散特征分析的光斑检测方法
  18. 浅谈CVPR2022的几个研究热点
  19. Jackson初次学习
  20. Fedora的服务详解zz

热门文章

  1. opencv 将视频流转换成帧图像(支持asf,mp4,avi)
  2. 【HiFlow】新型零代码自动化助手
  3. mysql数据库加密方法l_使用透明数据库加密
  4. 阿里云图片如何获取缩略图
  5. mysql事务应该多复杂_可能是全网最好的MySQL重要知识点/面试题总结
  6. 致敬柳传志三网合一的佳沃品牌之路
  7. 王家林人工智能AI第九节课:AI的上帝视角:神经网络能够完成各种计算模式的根本原因及神经网络能够识别图片宇宙密码 老师微信13928463918
  8. python刷火车票脚本_Python打造刷火车票工具邮件通知自己
  9. 使用html+css3画一个波士顿凯尔特人的三叶草队标
  10. 互联网域名系统国家工程中心(ZDNS)正式运营“.ren”顶级域名