Spring源码下载与编译,Debug学习才有效率
这里写自定义目录标题
- 一、源码下载
- 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学习才有效率相关推荐
- Spring源码下载与编译
文章目录 环境准备 Spring源码下载 导入IDEA 测试 环境准备 安装jdk,idea,maven并做好相应配置 操作系统:windows Spring源码下载 Spring源码Github仓库 ...
- SELinux零知识学习四、Audit应用层源码下载、编译和安装
接前一篇文章:SELinux零知识学习三.SELinux应用层源码下载.编译和安装 在前篇文章中编译SELinux源码时,出现了如下错误: seusers_local.c:11:10: 致命错误:li ...
- spring源码下载编译
环境准备 spring源码 下载地址: Git->https://github.com/spring-projects/spring-framework.git gitee->https: ...
- SELinux零知识学习六、swig源码下载、编译和安装
接前一篇文章:SELinux零知识学习五.libcap-ng源码下载.编译和安装 在前篇文章中编译libcap-ng源码时,出现了如下错误: swig -o capng_wrap.c -python ...
- VLC for Android源码下载和编译
Project Hosting on 点击打开链接 最受欢迎的开源项目 点击打开链接 由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏.图像处理.时间显示.开始菜单快捷方式等. ...
- Android12 源码下载、编译、刷机、单编调试Framework
文章目录 说明 1. 代码下载 1.1 下载Repo工具 1.2 安装和配置Git 1.3 创建工程目录 1.4 初始化Repo仓库 1.5 同步代码 2. 驱动下载 2.1 下载对应机型的驱动 2. ...
- 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译
本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:http://item.jd.com/12212640.html 试读地址:http:/ ...
- 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译...
本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:item.jd.com/12212640.ht- 试读地址:www.epubit.com ...
- Spring源码深度解析(郝佳)-学习-源码解析-创建AOP静态代理实现(八)
继上一篇博客,我们继续来分析下面示例的 Spring 静态代理源码实现. 静态 AOP使用示例 加载时织入(Load -Time WEaving,LTW) 指的是在虚拟机载入字节码时动态织入 Aspe ...
最新文章
- C和C++安全编码笔记:并发
- python与excel结合-Python和Excel终于可以
- 转:eclipse Failed to load JavaHL Library.
- 有气质的人都在看什么?
- php分享二十四:数组
- 数据可视化、模板框架、动态控件、可视化大屏、数据原型、监控平台、图表元件库、数据看板、驾驶舱、统计图表、消防、大屏展示、安防、智慧城市、旅游、运输、医疗卫生、贸易、电力、政务、水质、工业园区环境监测
- Play静态文件调用
- 2017-9-19Linux基础知识(2)
- NEWSCTF第二届--官方wp(2021.6.1萌新赛)
- MagicDraw-状态机图
- 计算机桌面不显示时间,win7电脑不显示时间怎么办|win7电脑不显示时间的恢复方法...
- 07、自己写库—构建库函数雏形
- Selenium 入门篇
- 前后端离线开发相关软件下载地址大全
- 【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning a
- 业务员与客户沟通的礼仪
- 【区块链实战】什么是 P2P 网络,区块链和 P2P 网络有什么关系
- 怎么在Windows电脑更新 DirectX ?
- 千元级智能门锁性价比革命,欧瑞博小金刚C1全球首发
- java中的比较方法