这里写自定义目录标题

  • 一、源码下载
    • 1、github源码下载
    • 2、阅读项目编译文档
      • 2.1、项目编译
        • (1)、解压我们下载好的目录
        • (2)、配置阿里云镜像
        • (3)、编译
        • (4)、遇到的坑
      • 2.2、导入IDEA
  • 二、Demo验证
    • 1、新建模块
    • 2、引用spring依赖
    • 3、编写测试类
    • 4、运行验证

学习spring的时候,肯定要自己学会看源码,才能更好的学习框架的设计思想,要有效率的学习,借助Debug效率才更高。在学习的前提就是要下载一下源码,编译过程中真的遇到很多坑啊,折腾很多时间,版本问题,jar下载问题等,下面给大家分享一下我的步骤;

一、源码下载

1、github源码下载

https://spring.io/projects/spring-framework

这里我选择的版本是5.2.0.RELEASE,为什么选择这个版本呢?因为我选择了更高的版本结果在编译的时候就失败了。查了一些文章,有前辈遇到坑,原因是版本太高了。第一次搞这个的伙伴们,建议跟我一样先按5.2.0的来跑,等跑通了再去折腾其他版本吧;

Build scan background action failed.
org.gradle.process.internal.ExecException: A problem occurred starting process 'command 'git''

2、阅读项目编译文档

spring给我们提供了构建项目的文档了,参考官方的来会好一点,网上有很多教程每个作者版本、环境都不一样,很容易遇到坑!


1.编译项目
2.导入IDEA步骤
3.像spring-aspects module模块报错时,处理方法
4.代码测试

2.1、项目编译

(1)、解压我们下载好的目录

我们可以看到主目录下已经有gradlew文件信息了,所以我们不需要单独去下载gradle;

(2)、配置阿里云镜像

主目录下还可以看到build文件,编辑该文件,主要有两处地方需要修改;
搜索buildscript,加入配置:

 repositories{maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}}

搜索allprojects,拉到下面,加入配置:

     maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}

手动下载gradle包

下载地址:https://services.gradle.org/distributions/

指定gradle\wrapper下gradle-wrapper.properties配置:文件地址为你下载的gradle-xx.xx.xx-bin.zip 存放位置:

例如:distributionUrl=file:///D://Code//SourceCode//LeanCode//Spring//spring-framework-5.2.0.RELEASE//gradle-5.6.2-bin.zip

(3)、编译

cmd命令行切换到主目录后,输入编译命令:

gradlew :spring-oxm:compileTestJava

(4)、遇到的坑

包下载超时:

包下载超时的,我们直接复制提示的链接到浏览器直接下载jar包即可;下载完之后需要找到gradle的目录,贴进去。
我的目录是:86137这个是电脑的用户名,大家找下自己对应的;然后在这个目录下搜索一下对应的目录hazelcast-all,然后找到对应的版本,将内容放进去;

C:\Users\86137\.gradle\caches\modules-2\files-2.1

2.2、导入IDEA

官方给出的步骤:

Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)

点击完成后,就会下载各种包、这个过程有点久、大家耐心等待。

二、Demo验证

1、新建模块

因为spring用的是Gradle,所以创建模块的时候,我们也使用Gradle来管理

2、引用spring依赖

编辑build.gradle文件,引入spring-context依赖,引入这个依赖即可,因为spring-context已经引用了其他模块的依赖了;编写完之后,保存更新一下gradle即可,跟操作maven差不多的,会提示导入新的改变;

3、编写测试类

新建接口类

package service;public interface BeanService {public void printName(String name);
}

新建实现类,并加上@Service注解

package service.impl;import org.springframework.stereotype.Service;
import service.BeanService;@Service
public class StudentBeanService implements BeanService {@Overridepublic void printName(String name) {System.out.println(name);}
}

编写main方法

 public static void main(String[] args) {AnnotationConfigApplicationContext annotationConfigApplicationContext=new AnnotationConfigApplicationContext("service");StudentBeanService studentBeanService = (StudentBeanService) annotationConfigApplicationContext.getBean("studentBeanService");System.out.println("----"+studentBeanService);}

AnnotationConfigApplicationContext构造方法传入的是要扫描的包,spring会去扫描包下面有spring定义注解的类,进行实例化跟初始化后放入ICO容器中;

4、运行验证

可以看到运行成功了;

然后我们可以进入AnnotationConfigApplicationContext类中,打断点后运行程序,开启我们的学习之旅啦!!!

Spring源码下载与编译,Debug学习才有效率相关推荐

  1. Spring源码下载与编译

    文章目录 环境准备 Spring源码下载 导入IDEA 测试 环境准备 安装jdk,idea,maven并做好相应配置 操作系统:windows Spring源码下载 Spring源码Github仓库 ...

  2. SELinux零知识学习四、Audit应用层源码下载、编译和安装

    接前一篇文章:SELinux零知识学习三.SELinux应用层源码下载.编译和安装 在前篇文章中编译SELinux源码时,出现了如下错误: seusers_local.c:11:10: 致命错误:li ...

  3. spring源码下载编译

    环境准备 spring源码 下载地址: Git->https://github.com/spring-projects/spring-framework.git gitee->https: ...

  4. SELinux零知识学习六、swig源码下载、编译和安装

    接前一篇文章:SELinux零知识学习五.libcap-ng源码下载.编译和安装 在前篇文章中编译libcap-ng源码时,出现了如下错误: swig -o capng_wrap.c -python ...

  5. VLC for Android源码下载和编译

    Project Hosting on 点击打开链接 最受欢迎的开源项目 点击打开链接 由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏.图像处理.时间显示.开始菜单快捷方式等. ...

  6. Android12 源码下载、编译、刷机、单编调试Framework

    文章目录 说明 1. 代码下载 1.1 下载Repo工具 1.2 安装和配置Git 1.3 创建工程目录 1.4 初始化Repo仓库 1.5 同步代码 2. 驱动下载 2.1 下载对应机型的驱动 2. ...

  7. 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译

    本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:http://item.jd.com/12212640.html 试读地址:http:/ ...

  8. 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译...

    本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:item.jd.com/12212640.ht- 试读地址:www.epubit.com ...

  9. Spring源码深度解析(郝佳)-学习-源码解析-创建AOP静态代理实现(八)

    继上一篇博客,我们继续来分析下面示例的 Spring 静态代理源码实现. 静态 AOP使用示例 加载时织入(Load -Time WEaving,LTW) 指的是在虚拟机载入字节码时动态织入 Aspe ...

最新文章

  1. C和C++安全编码笔记:并发
  2. python与excel结合-Python和Excel终于可以
  3. 转:eclipse Failed to load JavaHL Library.
  4. 有气质的人都在看什么?
  5. php分享二十四:数组
  6. 数据可视化、模板框架、动态控件、可视化大屏、数据原型、监控平台、图表元件库、数据看板、驾驶舱、统计图表、消防、大屏展示、安防、智慧城市、旅游、运输、医疗卫生、贸易、电力、政务、水质、工业园区环境监测
  7. Play静态文件调用
  8. 2017-9-19Linux基础知识(2)
  9. NEWSCTF第二届--官方wp(2021.6.1萌新赛)
  10. MagicDraw-状态机图
  11. 计算机桌面不显示时间,win7电脑不显示时间怎么办|win7电脑不显示时间的恢复方法...
  12. 07、自己写库—构建库函数雏形
  13. Selenium 入门篇
  14. 前后端离线开发相关软件下载地址大全
  15. 【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning a
  16. 业务员与客户沟通的礼仪
  17. 【区块链实战】什么是 P2P 网络,区块链和 P2P 网络有什么关系
  18. 怎么在Windows电脑更新 DirectX ?
  19. 千元级智能门锁性价比革命,欧瑞博小金刚C1全球首发
  20. java中的比较方法

热门文章

  1. oracle 数据库定时自动备份
  2. VB实现BMP图像文件的读取、显示与存储
  3. i2c-tools 测试i2c
  4. 环洋市场调研-2021年全球颜料红2行业调研及趋势分析报告
  5. ECharts Map 属性详解
  6. jsp分页技术的实现
  7. win 修改注册表维护浏览器主页
  8. 五杆机构正运动学公式、逆运动学公式MATLAB代码
  9. Word轻松粘贴代码
  10. 华为Mate30 4G电路原理图