Spring源码环境搭建详细教程及常见问题解决

温馨提示:按照我的步骤、自己版本对应好,一定可以搭建成功!!

1 版本介绍
  • Spring-framework:5.2.1

  • Gradle:5.6.4

  • Kotlin:1.3.41

  • Jdk:1.8

  • Idea:2018.2

2 源码下载
# 在github上下载你最好有梯子,需要什么版本就直接改版本号就行了
git clone -b v5.2.21.RELEASE https://github.com/spring-projects/spring-framework.git
3 gradle下载

注意:gradle的版本是根据spring 的版本来决定的,如下图:

  • step2:选择结尾为“all”的压缩包

  • step3:下载、解压、配置环境变量(比较基础,这里略了)

  • step4:验证是否安装成功

  • step5:将idea的Kotlin直接升级到最新版本

注意:这里升级它很重要,因为你不升级的话,后面将项目导入到idea的时候编译必失败!!!

  • step6:如果你有梯子的话,gradle就到这里完事了,不需要配置什么镜像依赖地址。如果你没有的话,那就需要配置镜像地址,这里网上搜一下有很多,这里就略过了。

4 将项目导入idea
  • step1:file -> open -> 找到你存放的spring位置

  • step2:配置gradle信息

  • step3:让他自己编译吧,放心!你是不可能一次编译成功的

5 问题及解决方案
  • 问题一:Can’t find resource for bundle java.util.PropertyResourceBundle,key kotlin.gradle.testing.enabled

    • 解决:这个跟你的spring没有关系,需要改你的idea配置。

    这个是你idea的安装目录下的lib文件下的一个jar包,你要做的事就是:(1)先备份一个留着;(2)解压它;(3)修改里面misc目录下的registry.properties文件,在最下面一行加上:kotlin.gradle.testing.enabled=false;(4)保存;(5)打回jar包;(6)替换之;(7)重启idea

kotlin.gradle.testing.enabled=false
  • 问题二:Kotlin:Classpath entry points to a non-existent location: spring-cglib-repack-3.3.0.jar/objenesisPepack.jar

    • 解决:双击下图红色框的两个jar即可

  • 问题三:找不到符号 符号: 变量 CoroutinesUtils 位置

    • 解决:点击下图那个红箭头的地方即可

6 新建一个module测试一下
  • step1:在项目根目录下新建一个module

  • step2:自己命名好,next就完事了

  • step3:新建好之后,在新module的build.gradle增加如下配置

compile project(":spring-context")
compile(project(":spring-instrument"))
  • step4:然后就是一个配置文件,两个java类,文件结构如下:

spring-config.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">
​
    <!--把对象的创建交给spring来管理,这里的相关属性值依你自己的为准!!!-->
    <bean id="person" class="com.nicolas.debug.Person">
        <property name="username" value="zhangsan"></property>
    </bean>
​
</beans>

Person.java

package com.nicolas.debug;
​
public class Person {
    private String username;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
}

Test.java

package com.nicolas.debug;
​
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
​
public class Test {
   public static void main(String[] args) {
      ApplicationContext ac = new ClassPathXmlApplicationContext("spring-config.xml");
      Person person = (Person) ac.getBean("person");
      System.out.println(person.getUsername());
   }
}
  • step5:启动

备注:如果这里启动报:找不到符号 InstrumentationSavingAgent,那是因为你没有在build.gradle里配置compile(project(":spring-instrument"))

后面就开始debug学习源码吧~~~~

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值