「这是我参与11月更文挑战的第13天,活动详情查看:2021最后一次更文挑战」。
一,前言
“工欲善其事,必先利其器”,学习 Spring 源码也有一个好工具;
学习源码的设计思路及实现原理,一定要深入学习其中的类继承和接口实现的关系;
因此,简单介绍一下 Spring IDE - STS(全称:Spring-Tool-Suite)的使用;
本篇,重点介绍如何将 Spring 项目加入到 IDE 管理中,并查看类继承关系;
以便在日后的学习过程中,能够对 Spring 源码的继承结构有一个较为清晰的理解;
二,下载并安装 STS
两种下载方式:
- 安装 Eclipse 对应版本的 STS 插件
- 直接下载基于 Eclipse 的 STS IDE 安装程序
这里采用基于 Eclipse 的 STS IDE 安装程序进行安装
IDE下载网站:spring.io/tools/sts/a…
1,选择基于 Eclipse 的 STS 下载安装文件:
下载并安装后,启动 IDE:
- 注意: 此时导入 Spring 工程会报错,原因是缺少 Eclipse 的 Groovy 插件;
2,安装 Eclipse 的 groovy
1)安装 groovy
Brave:~ Brave$ brew install groovy
查看版本号
Brave:~ Brave$ groovy -v
Groovy Version: 2.4.12 JVM: 1.8.0_51 Vendor: Oracle Corporation OS: Mac OS X
2)安装 eclipse-groovy 插件
在 eclipse 的 Help -> Install New Software 中,下载 groovy 插件;
注意 : Groovy 插件版本一定要和 Eclipse 版本相同,否则无效
STS 版本 3.9.2 基于 eclipse 4.7.2 版本,需下载对应版本的 groovy 插件(4.7版本)
4.7 版本 groovy 插件:
http://dist.springsource.org/release/GRECLIPSE/e4.7/
相关网站:
- Spring Tool Suite:spring.io/tools/sts/a…
- Groovy/Grails Tool Suite:spring.io/tools/ggts/…
三,导入工程可能遇到的问题
1,Groovy编译版本问题
解决方式:修改 eclipse 配置中 groovy compiler 版本
转换后要求重启 eclipse,重启后问题解决;
四,将 Spring 项目加入 Spring IDE 管理
打开 Spring Explorer 视图:
将 Spring 项目加入到 Spring IDE 中进行管理(将 spring-test 项目加入到管理)
添加完成后,项目图标会有一个 S 标识:
并且,项目会被添加在 Spring Explorer 视图:
现在,成功将项目添加到 Spring IDE 中进行管理;
= 备注 要使用IDE工具完成 SpringBean 的管理,还需要在做一项准备工作:将项目中的XML配置文件加入到 Spring IDE 中;
五,将项目中的 XML 配置文件加入到 Spring IDE 中
在 Spring Explorer 中右键刚刚我们添加进来的项目,选择 properties:
将 XML 添加到 Spring Explorer 项目中:
六,图形化展示依赖关系
以图形化方式展示 Bean 依赖关系:
在 Bean 依赖图中,可以看到一系列 Bean 的依赖关系,为我们关系和设计 Bean 提供了很好的帮助;
七,XML 与图形化对照
再引用 Spring Bean 中的一个 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-2.0.xsd">
<bean id="a" class="java.lang.Object" />
<bean id="b" class="java.lang.Integer">
<constructor-arg value="50" />
</bean>
<bean id="c" class="java.lang.String">
<constructor-arg ref="b" />
</bean>
<bean id="int" class="java.lang.Integer">
<constructor-arg ref="c" />
</bean>
<bean id="long" class="java.lang.Long">
<constructor-arg ref="c" />
</bean>
<bean id="buffer" class="java.lang.StringBuffer">
<constructor-arg ref="int" />
</bean>
<bean id="thread" class="java.lang.Thread"/>
<bean id="field" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
<property name="targetObject" ref="thread"/>
<property name="targetField" value="MAX_PRIORITY"/>
</bean>
<bean id="secondBuffer" class="java.lang.StringBuffer">
<constructor-arg ref="field"/>
</bean>
</beans>
图形化展示依赖关系:
八,导入 Spring 官方教程
STS 还有一个强大的功能:能够直接导入 Spring 官方提供的教程源码;
浏览并选择要导入的项目:
导入 Spring 官方提供的 Spring 工程 - 宠物医院:
可以选择项目和工程的构建类型 如 Maven、Gradle;
九,结尾
本篇仅提供了一个导入的演示,宠物医院项目由于没有 gradle 版本,所以不能导入;
后面我们还会讲一下这个宠物医院项目的的搭建;
它也是我们日后学习 Spring 源码索要用到的核心应用;