建议spring-framework的版本为5.0
对应的gradle版本为gradle-4.4.1-bin
我的idea是2019.1.3
建议spring-framework、gradle的版本和我一样,不然会有其他问题
gradle安装
官网下载网址或者百度搜索,因为官网可能比较慢。
下载完解压就行。然后配置环境变量
path增加:
cmd命令执行 gradle -v查看是否正确
idea从git克隆源码
因为github下载有点慢,所以咱们去码云上面下载源码,去spring源码上复制https地址
https://gitee.com/mirrors/Spring-Framework.git
在idea下用git拉取分支,如下图所示
填入git的url,和本地目录位置,等待下载完成。
工程属性配置
如果没有跳出这一步导入的话,可以在项目根目录的build.gradle右键,我忘记具体选什么了,反正就是选择其中一个导入gradle项目。
打开项目之后会马上进行build,先停止build。切换版本,到5.0的版本。
之后编译会去下载gradle需要的jar包,如果下载速度很慢的话,可以修改gradle的仓库。增加一个阿里的仓库
repositories {
maven { url "http://maven.aliyun.com/nexus/content/groups/public" }
maven { url "https://repo.spring.io/plugins-release" }
}
然后再重新用gradle编译
导入完成后发现spring-core会报错,缺失了cglib和objenesis的jar包。
打开右边侧边栏gradle,找到spring-core下 Tesks中下的other
分别点击图中这两个命令
这里还有个问题,就是AspectJ模块会报错,这个比较麻烦,而且暂时用不到,所以就先不管它,或者将它删除。
创建测试项目
在根目录上右键新建一个module,选择一个模板,这里我用的是图中这个
然后填groupId和artifactId
接着选择项目所在目录,这里要注意我们测试项目所在的目录和其他的spring-*项目是平级的
生成文件后修改pom的内容,增加commons-logging的依赖。之后运行例子需要用到。
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
然后编写测试用例
我创建后的项目结构是这样的
几个文件的内容如下
MyTestBean
package org.springframework;
public class MyTestBean {
private String testStr = "testStr";
public String getTestStr() {
return testStr;
}
public void setTestStr(String testStr) {
this.testStr = testStr;
}
}
beanFactoryTest.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 id="myTestBean" class="org.springframework.MyTestBean"></bean>
</beans>
AppTest
package org.springframework;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class AppTest
{
@Test
public void shouldAnswerWithTrue()
{
BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("beanFactoryTest.xml"));
MyTestBean bean = (MyTestBean) beanFactory.getBean("myTestBean");
assertEquals("testStr",bean.getTestStr());
}
}
这是一个最简单的bean加载,要运行成功还要有必须的依赖才行
添加依赖
file->project structure->modules->自己的module
其中大部分都是spring源码中的项目,其中的commons-logging是我们之前在pom里面加的,你也可以用maven自己下载这个jar包
然后跑我们的test,绿色正确即可。debug也可以去查看源码