1、spring需要下载gradle
gradle官网:https://services.gradle.org/distributions/
进入下载对应的版本,我是使用的7.1版本:gradle-7.1-bin.zip。
下载后解压到自己的目录下面,D:\job_tools\gradle-7.1-bin
2、配置gradle环境变量
新建GRADLE_HOME系统变量,我新建用户变量配置失败了。
GRADLE_HOME D:\job_tools\gradle-7.1-bin\gradle-7.1
在path中配置bin目录
%GRADLE_HOME%\bin
然后打开命令窗口,执行gradele -v ,显示版本就是配置成功
3、下载spring源码
可以去官网找到github的地址,也可以自己到github中搜索spring。
进入github的spring页面,复制下载链接,然后通过gitee进行导入,这样会节省很多时间,毕竟github是外网,自己下载会很慢的。
spring的git链接,复制此链接也可以:
spring的git链接:https://github.com/spring-projects/spring-framework.git
打开gitee,导入spring的github链接,构建自己的仓库。
然后把spring的git下载链接放进去,填写一些仓库信息,提交等待即可。下面就是成功将spring源码放到自己的仓库,下载就会飞快。
4、编译启动spring
使用git命令将我们gitee仓库的代码下载到本地,然后进入spring目录下找到import-into-idea.md,这个是导入idea提供的文档,使用命令行执行:
./gradlew :spring-oxm:compileTestJava
如果失败了,报这个错误就是jdk版本问题,所以我切换了5.2.x进行构建
BUILD成功后再执行:
./gradlew :build
然后使用idea打开build.gradle,需要时间有点长,静等加载完成即可。
然后新建一个spring.myspring-test模块
新建个UserService的类,简单的输出hello
public class UserService {
public String hello(){
return "hello";
}
}
在resources下新建applicationContext.xml,把我们的UserService注册到spring中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
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
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="userService" class="com.myspring.UserService"/>
</beans>
新建MyAppContext类,从spring中拿到UserService的bean,调用hello方法。
public class MyAppContext {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService = (UserService) context.getBean("userService");
System.out.println(userService.hello());
}
}
如果出现Kotlin: warnings found and -Weeror specified报错
1、可能是Kotlin插件没有安装,自己安装插件。
2、安装插件还是报这个错误,就是版本过低,我之前用的2018.1版本,现在换成了2022.1版本后成功构建成功!