Idea 搭建Spring源码环境的超详细教程_java

来源:脚本之家  责任编辑:小易  

选择spring,勾上2113set up library later,勾上5261spring-mvc,记得project SDK要配置java环境接着就是next,继4102续勾上spring-mvc 然后会出现填写package名称,还是项目路径,server服务器1653路径,基础包的设计;这里要说application server,我选择tomcat路径这里ok了之后,就完成了,来点一下运行tomcat看会不会报错,最后会自动弹出一张页面,上面写着Holle world!~说明你成功了www.zgxue.com防采集请勿采集本网。

本篇主要讲解如何使用Ideal 搭建Spring的源码环境,想必大家都会多多少少去看过Spring的部分源码,一般我们都是直接点进某个Spring类 然后Idea上面去下载 ,但是确实比较麻烦,而且不能添加自己对源码的注释 理解 ,本篇就来解决这个问题,手把手使用Idea 搭建Spring framework ,并且直接在Spring framework项目中添加我们自己的module 来验证环境是否正确。 本过程会比较耗时 而且容易出错 慢慢来吧。

1. clone spring-framework 项目

1.1 找到github spring-framwwork 项目

这不是有报错吗。。。

先登录github 找到 spring-framework项目

一.读源码的目的 我们在开发过程中往往会运用一些市场上一些主流的框架,例如spring,hibernate ,strust 和mybaities 等。 我们往往可能有时候只知道运用,却不知道这些框架内部实现机制。这样我们就需要读这些框架的源码,方便我们更深入的去

https://github.com/spring-projects

你直接调试如果能调试成功的话 。进入你这个程序的文件夹进入那个bin文件夹 里面有个exe文件 就是调试生成的如果你没有使用dll文件引用那么把这个exe文件可以直接复制出来使用

image-20200924100101919

我选择的是 5.0.x

image-20200924100152972

如果你觉得你网速可以,那你可以直接从 github clone 下来, 我这里先把项目传到 gitee

1.2 fork 到gitee 码云

image-20200924100520958

拉取你要的 分支 git clone -b 分支

image-20200924101002192

2. 查看 import-into-idea.md 文件

在下载的源码中 有一个文件是 import-into-idea 的 md文件 里面有关于导入 idea需要的 注意事项,我们来打开它

The following has been tested against IntelliJ IDEA 2016.2.2## Steps_Within your locally cloned spring-framework working directory:_1. Precompile `spring-oxm` with `./gradlew :spring-oxm:compileTestJava`2. Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)3. When prompted exclude the `spring-aspects` module (or after the import via File-> Project Structure -> Modules)4. Code away## Known issues1. `spring-core` and `spring-oxm` should be pre-compiled due to repackaged dependencies.See `*RepackJar` tasks in the build and https://youtrack.jetbrains.com/issue/IDEA-160605).2. `spring-aspects` does not compile due to references to aspect types unknown toIntelliJ IDEA. See https://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the'spring-aspects' can be excluded from the project to avoid compilation errors.3. While JUnit tests pass from the command line with Gradle, some may fail when run fromIntelliJ IDEA. Resolving this is a work in progress. If attempting to run all JUnit tests from withinIntelliJ IDEA, you will likely need to set the following VM options to avoid out of memory errors: -XX:MaxPermSize=2048m -Xmx2048m -XX:MaxHeapSize=2048m4. If you invoke "Rebuild Project" in the IDE, you'll have to generate some testresources of the `spring-oxm` module again (`./gradlew :spring-oxm:compileTestJava`) ## TipsIn any case, please do not check in your own generated .iml, .ipr, or .iws files.You'll notice these files are already intentionally in .gitignore. The same policy goes for eclipse metadata.## FAQQ. What about IntelliJ IDEA's own [Gradle support](https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)?A. Keep an eye on https://youtrack.jetbrains.com/issue/IDEA-53476

大致意思就是

2.1 在源码目录下执行

 ./gradlew :spring-oxm:compileTestJava

image-20200908133100199

image-20200908133315577

2.2 再导入导 idea 中

会开始下载 Gradle 构建工具 等,会根据 gradle-wrapper.properties 中的指定版本下载,最好不要修改它的版本

image-20201012092914514

Idea导入 选择文件夹

image-20200924103331680

选择使用Gradle

![image-20200924103346932](/Users/johnny/Library/Application Support/typora-user-images/image-20200924103346932.jpg)

静静的等待

image-20200908131416428

image-20200908131504088

2.3 排除 "spring-aspects"

排除了 spring-aspects 项目

打开settings.gradle 把 //include "spring-aspects" 注释了

image-20201012111805740

2.4 下载完依赖后 (耗时可能要个15-30分钟)

可以发现 依赖都加载完成后,idea 就能识别我们导入的 spring项目了,并且图标都变亮了

image-20200924101847649

3.引入自定义模块放入SpringFramework 项目下

下面就是来验证 我们的 源码环境是否 正常, 需要引入一个自定义的 模块,并且依赖 core bean 等spring依赖

3.1 新建module

右击项目 -》 new -》 module 选择 gradle 项目

image-20201012111453264

3.2 添加 依赖

在新建的module下 打开 build.gradle 引入下面的依赖 spring-beans , spring-context , spring-core , spring-expression

dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' compile(project(":spring-beans")) compile(project(":spring-context")) compile(project(":spring-core")) compile(project(":spring-expression"))}

3.3 检查 module 是否被引入

打开settings.gradle 添加 include 'spring-demo' ,默认使用我说的创建module 方式 会自动添加的最好检查一下

3.4 编写 测试代码

3.4.1 定义Person类

package com.johnny.bean;/** * @author johnny * @create 2020-09-07 下午11:22 **/public class Person { private String name; private int age; @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }}

3.4.2 resources 下新建 demo.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean class="com.johnny.bean.Person" id="person"> <property name="name" value="johnny"/> <property name="age" value="10"/> </bean></beans>

3.4.3 新建main 加载xml 并且从容器中获取 bean

package com.johnny.bean;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * @author johnny * @create 2020-09-07 下午11:24 **/public class DemoMain { public static void main(String[] args) { ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("demo.xml"); Person person = classPathXmlApplicationContext.getBean(Person.class); System.out.println(person); }}

可以看到 能获取到 容器中的Bean ,表示我们的spring环境搭建正确

image-20201012110602726

总结

本篇主要讲解 如何使用idea 搭建spring源码环境,过程其实很耗时 而且特别容易出错,总结就是 1. clone 代码,2.进入源码目录执行 ./gradlew :spring-oxm:compileTestJava3.导入idea 中 4. 排除 exclude the spring-aspects module 5.自定义module 验证环境 , 祝愿大家环境搭建顺利。。。最好开个墙

本文由博客一文多发平台 OpenWrite 发布!

到此这篇关于Idea 搭建Spring源码环境的文章就介绍到这了,更多相关Idea Spring源码环境内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 您可能感兴趣的文章:Idea+maven搭建SSH(struts2+hibernate5+spring5)环境的方法步骤在idea环境下构建springCloud项目idea快速搭建springboot项目的操作方法IDEA上面搭建一个SpringBoot的web-mvc项目遇到的问题

打开idea软件,在欢迎2113页面可以看到Import Project导入项目,但spring源码5261已4102经使用了gradle构建项目,这里1653我们选择open的方式直接打开spring源码目录,gradle会自动帮助我们导入和构件项目代码点击open方式,会出现Open File or Project对话框让我们选择需要打开的源码的项目目录选择打开之后,会显示Import Project from Gradle对话框,默认会指定好项目根目录的build.gradle文件,如果需要可以选择修改,下面可以指定gradle的home目录信息选择完成之后,点击ok,然后会显示"Build 'spring-framework' Gradle project info",此时gradle在构件spring项目代码,会从远程库下载依赖的jar文件,由于下载的依赖文件较多,需要等待时间较长项目代码构件完成之后,会显示"Gradle Project Data To Import"对话框,会显示spring项目中所有包含的模块项目,可以把不需要的模块去除勾选,默认导入全部即可点击ok之后,idea项目目录显示所有spring模块目录,选择打开指定模块源码,可以按需要阅读代码,也可以进入test目录,结合单元测试代码来阅读和测试代码内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 详解java 对象锁与类锁
  • java中的关键字_动力节点java学院整理
  • mybatis实现自定义类型转换器typehandler的方法
  • springboot实现阿里云短信接口对接的示例代码
  • java明文密码三重加密方法
  • spring框架实现文件上传功能
  • 基于java回顾之集合的总结概述
  • 详解spring boot上配置与使用mybatis plus
  • 《阿里巴巴 java开发手册》读后感小结
  • java实现快速排序的方法
  • 如何将spring开源代码导入idea中进行阅读
  • 如何在idea上创建spring源码
  • 如何把spring源码导入idea
  • idea怎么导入springboot
  • 请教,gradle编译spring5源码时报错,怎么回事呢?...
  • idea 建Springboot启动报错
  • spring 3.x企业应用开发实战 源码 idea怎么运行
  • gradle cleanidea eclipse的时候,spring源码编译...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言其它相关首页idea+maven搭建ssh(struts2+hibernate5+spring5)环境的方法步骤在idea环境下构建springcloud项目idea快速搭建springboot项目的操作方法idea上面搭建一个springboot的web-mvc项目遇到的问题详解java 对象锁与类锁java中的关键字_动力节点java学院整理mybatis实现自定义类型转换器typehandler的方法springboot实现阿里云短信接口对接的示例代码java明文密码三重加密方法spring框架实现文件上传功能基于java回顾之集合的总结概述详解spring boot上配置与使用mybatis plus《阿里巴巴 java开发手册》读后感小结java实现快速排序的方法java使double保留两位小数的多方java8 十大新特性详解intellij idea 2020最新激活码(亲java.net.socketexception: connjava写入文件的几种方法分享java环境变量的设置方法(图文教程java 十六进制与字符串的转换java list用法示例详解java中file类的使用方法javaweb实现文件上传下载功能实例java加密枝术深入理解jmeter如何添加循环控制器freemaker replace函数的正则表达式运用深入学习javaweb中监听器(listener)的使用详解springcloud之服务注册与发现java使用c3p0数据源链接数据库java异常 exception类及其子类(实例讲解)java中arraylist类的源码解析java 读取pdf中的文本和图片的方法使用eclipse开发工具如何解决java compil
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved