Spring5.x部署到IDEA

前言

自从六月份辞职到现在,三个多月,这期间不是学车就是学习。给自己列了一个清单从Java基础到高级,每天都去b站找视频看,然后跟着手写,写笔记!
对于Spring其实我是觉得比较尴尬的,因为我之前说的我以前也报班学过Java,也说了Spring不过当时是完完全全0基础,所以短短三个月啥也没学出来。后来自己打算辞职之后走开发的路时就纠结是重新学Java基础(是指从面向对象开始学),还是直接学应用开发!我跟我一个朋友一起讨论了之后,打算还是直接学应用开发也就是直接上手SpringBoot(这里要声明,我对Spring不是一点基础没有,更不是对Java基础一点都没有,如果扪心自问确确实实自己是0基础的,还是要从基础看啊)。
因为基础十分不牢,所以我得辛苦采坑可想而知,从去年七八月份开始学,学到年底进展几乎不大,也就勉强会用了。后来又去网上买王松的微人事课,把springboot和vue整合的做了个项目,还顺手学了SpringCloud。加上这段时间又看了一些其他高级基础,所以现在打算看Spring源码的,这件事在我的计划单里面是和Mysql高级知识一样划了重点,都不是一蹴而就的,所以请耐心!话不多说,下面进入正题!

拉取源码前的声明


第一声明:请看完全文再操作!!!


关于拉取Spring源码,我这里不建议直接cloneGitHub的仓库,因为很慢,建议将他的仓库导入到码云里再导入!
这里要着重声明:如果你导入最新的Spring源码,那么如果你的jdk是8或以下,那么可能会遇到如下问题,这个包是9才出来的,所以你得升级你的jdk,我这里是直接升级到了11,现在也很方便,连环境变量都不用配置!

jdk.jfr.*

在这里插入图片描述
或者不用最新版的Spring,可以拉下面仓库:
https://gitee.com/lenve/spring-framework

第二步安装gradle

因为最新版的Spring是用Gradle构建的,所以你要拉去代码得有gradle,两种方式,自己去下载然后配置环境变量,你项目就用你本地gradle,第二就是项目导入的时候他会默认下载gradle,那个就是适配你工程的gradle,只要你的网够快或者有代理,那你最好下载那个!
gradle安装与配置请戳这里,请务必看哦!

第三步导入idea

先close你当前项目,直接用idea来clone项目。
我在网上看了很多本地导入的,他们说要先编译啊,然后怎么样怎么样。我一开始也想这么做,不过在初始化的时候他总是去下载gradle,我觉得很麻烦,所以我就直接用idea导入,让idea自己去build
在这里插入图片描述
当然你一开始导入,你会发现idea的任务栏里面还是有下载gradle,你把它停了,照上面的配置,使之用你本地的gradle,这里要说明gradle版本最好和工程的一致,就算有相差也别差太大。我这里spring工程里的是6.6.1,我本地是6.5。
这里我还要特别声明一下:
我刚刚在上面列了一个别人的Spring源码,恕我直言你最好用那个方法,不要拉最新的,我看了一下,他的源码 jdk8就可以,他的gradle用的就是6.5.1。所以请拉去他的源码
如果你需要升级jdk,在idea里使用,你也就别配什么环境变量了,直接在idea导入你的jdk用就行了!我升级的时候捣鼓环境变量,把我自己的javac都捣鼓出问题了,好在我不用记事本写代码!
把工程所有的地方全换成jdk11之后,点击build,只要成功,那就说明你基本OK了!

创建测试工程

New-Module-Gradle(默认选中Java),创建项目,我这里有个问题就是项目一旦创建完成之后,所有工程全部都展开,然后所有的模块都加了个jmh和testfixTure,不过不影响我,我也没在意!
在这里插入图片描述
左边是工程结构,这里要把junit降级,他默认是4.12,但是在执行过程中报错
在这里插入图片描述
后来我拿里面的报错去百度的,说是Junit版本高了,好像是4.12需要再加一个依赖,我没太看仔细,反正他说只要降级就可以了!这里他建议用4.10,然后重新构建,就OK了!

创建测试Bean

package com.study.spring;

/**
 * @author 朝花不迟暮
 * @version 1.0
 * @date 2020/9/30 23:23
 */
public class MyTestBean
{
	private String name = "Leo";

	public MyTestBean(String name) {
		this.name = name;
	}

	public MyTestBean() {
	}

	@Override
	public String toString() {
		return "MyTestBean{" +
				"name='" + name + '\'' +
				'}';
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

在resources目录下创建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">

	<bean id="myTestBean" class="com.study.spring.MyTestBean"/>

</beans>

在test目录下,新建一个测试类

import com.study.spring.MyTestBean;
import org.junit.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

/**
 * @author 朝花不迟暮
 * @version 1.0
 * @date 2020/9/30 23:23
 */
public class AppTest
{
	@Test
	public void MyTestBeanTest() {
		BeanFactory bf = new XmlBeanFactory( new ClassPathResource("spring-config.xml"));
		MyTestBean myTestBean = (MyTestBean) bf.getBean("myTestBean");
		System.out.println(myTestBean.getName());
	}
}

执行结果打印Leo,说明OK!

总结

我遇到的问题总结:
找不到jdk.jrf.*的包,解决是升级jdk
Junit版本太高,解决是降级
中间遇到的其他啥问题,我也忘了,肯定都是好解决的!
详情参考:
https://www.cnblogs.com/java-chen-hao/p/11113340.html
下面说正事:

在这里插入图片描述

我的公众号:窗前居士
在这里插入图片描述
B站传送道:https://space.bilibili.com/322611850
感谢光临,谢谢~~

posted @ 2020-10-01 22:45  朝花不迟暮  阅读(242)  评论(0)    收藏  举报