目录
一、使用 Spring Initializr
创建 SpringBoot 项目
我们以常用的 IDEA 集成开发工具为例,介绍如何使用 Spring Initializr
创建 SpringBoot 项目。
1、创建步骤
1)打开新工程创建面板
选择 File -> NEW -> Project...
,打开创建新工程面板,选择 Spring Initializr
选项,在右侧面板选项选择我们项目使用的 JDK 版本,Starter 的服务地址选择默认的官方地址:
2)配置项目信息
点击下一步到了新项目的信息配置面板,在这里配置:项目所属组、项目名称、项目构建类型(Maven 或 Gradle)、项目的打包形式(Jar 或 War)、项目描述、包名等项目信息。
这里需要注意的是:项目所属组名是用于管理项目,同一个组下不用有相同的项目名,而包名(Package)则是我们项目的文件组织形式。
3)选择 SpringBoot 版本和项目的依赖组件
点击下一步就到了项目创建的最后一步,在这里选择项目的 SpringBoot 版本和一些项目常用的依赖组件(比如 Lombok 组件):
一般面板上提供的 SpringBoot 版本都比较新,我们也可以在创建项目后去 POM 文件上修改为其它版本,选择完后点击完成按钮即可完成项目的创建。
2、SpringBoot 项目的 POM
文件结构解析
1)创建成功后的 POM
文件内容
通过 Spring Initializr 创建 SpringBoot 项目成功后的 pom.xml 文件内容信息如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- SpringBoot 版本信息 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 项目信息 -->
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<!-- 项目的依赖组件 -->
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
2)POM 内容结构解析
- 1、第一行就是
xml
文件的标准开头行,配置了版本和编码信息; - 2、最外层的
<project>
标签就是项目工程的核心信息,里面配置了坐标信息,由于我们使用的是 Maven 进行构建,所以这些就是 Maven 相关坐标信息,同时使用<modelVersion>
标签标明了 Maven 模板的版本号; - 3、内层里面的第一部分是 SpringBoot 项目的核心内容,由于在 Spring Initializr 面板中,我们使用的是默认的 Spring 官方提供的模板路径地址(
https://start.spring.io/
),而官方是通过<parent>
标签让项目继承spring-boot-starter-parent
的方式让项目成功一个 SpringBoot 项目的; - 4、接下来的第二部分是我们在项目信息配置面板上配置的内容内容,包括项目组、项目名、Java 版本等信息;
- 5、第三部分就是我们选择的依赖组件,默认会添加
spring-boot-starter-test
这个测试组件,同时在组件面板选择的组件都默认为最新版本,我们也可以自己修改组件的版本号。
3、解决 Spring 官网地址无法访问的问题
在 Spring Initializr 面板中如果选择默认的 Starter 服务地址(即 https://start.spring.io
)时,可能会出现官网连接不上的情况,报错如下:
Initialization failed for 'https://start.spring.io' Please check URL, network and proxy settings......
解决方案:
- 1、使用外网代理的方式重新尝试;
- 2、使用阿里云提供的 Springboot 版本,地址为:
https://start.aliyun.com/
选择阿里云官网地址的具体操作如图:
后面的操作步骤基本和官方提供的一致,但创建成功后的 POM 文件内容会有点不同:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 项目信息 -->
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<!-- 项目属性 -->
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.2.10.RELEASE</spring-boot.version>
</properties>
<!-- 项目依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
最大的不同点在于:阿里云是通过在依赖中引入 spring-boot-starter
来标明项目是以 SpringBoot 的形式来运作的。
二、手动创建 SpringBoot 项目
通过 Spring Initializr 创建 SpringBoot 项目的结果可知,其实就是通过对项目的 POM 文件进行配置来使项目以 SpringBoot 的形式运行而不是以普通 Maven 项目的形式运行。那么,反过来,我们也可以通过创建一个普通 Maven 项目并修改 POM 文件的形式来创建一个 SpringBoot 项目。
具体创建步骤如下:
1)创建 Maven 工程
在新建工程面板上选择 Maven 选项,同时勾选 Create from archetype
,然后选择 maven-archetype-quickstart
模板:
2)配置项目信息
点击下一步后来到了项目配置信息面板,设置如下:
3)设置 Maven 配置信息
点击下一步来到了 Maven 配置信息面板,一般都会选择自定义的 Maven 信息:
4)修改 POM 文件
创建 Maven 项目成功后,将 pom.xml
上的信息删除掉,只剩下基本的坐标信息和项目信息:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 项目信息 -->
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>demo</name>
</project>
然后仿照 Spring 官方例子添加 SpringBoot 的 <parent>
标签,具体使用的 SpringBoot 版本可以自己设置:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
配置完成后就可以点击 Maven 依赖的解析按钮来导入相应的依赖。这样就完成了一个 SpringBoot 项目的创建,其它的依赖组件可以自定义引入,这里就不多讲述了。
三、SpringBoot 的版本兼容性问题
1、版本的兼容性
使用框架开发前,我们都需要了解版本的兼容性问题:
凡是在开发项目过程中使用的插件、服务器、项目依赖管理器等等,都要考虑和项目的兼容性,以及本身内部之间的兼容性(
jar
包之间的兼容性)。
2、查看 SpringBoot 版本兼容性要求
1)登录 SpringBoot 官网:https://spring.io/projects/spring-boot,选择 LEARN 面板:
2)以最新的第一个版本为例,点击 Reference Doc 连接按钮,来到参考文档页面,选择 Getting Started:
3)在文档开始页面中选择 System Requirements 查看当前 SpringBoot 版本的系统依赖:
我们可以看到这个版本的依赖为:
- Java 环境要求为 JDK8 - JDK17;
- Spring 框架至少是 5.3.22 及以上版本;
- Maven 版本要求是 3.5 以上;
- 还有下面的 Tomcate 版本信息。
这些就是运行当前 SpringBoot 版本项目所需的要求,如果环境版本过低就可能会导致不兼容问题。
查看所有 SpringBoot 版本的地址为:https://docs.spring.io/spring-boot/docs/,具体的文档查看路径为:{version} -> reference,里面可以选择 pdf、html 等多种形式进行查看。