SpringBoot教程(二) | 创建SpringBoot项目
一、前言
接下来我们要学习一下如何创建一个spring boot项目。
二、所需环境
- JDK1.8
- Maven 3.6
- Idea 2021.1
三、创建方式
- 从Maven项目改造为springboot项目
- 在线创建springboot项目(官网和阿里云脚手架)
- 在使用开发工具idea创建SpringBoot项目( Spring Initializr),本质上其实就是使用在线创建的API
建议用第三种方式:idea创建SpringBoot项目
方式一:maven 改造
maven改造,比较麻烦
1. 创建maven项目
2. 添加依赖,让其成为springBoot项目
先讲一下 spring-boot-dependencies
- spring-boot-dependencies 称之为 Spring Boot的依赖项版本管理文档,包含了Spring Boot项目所需的大量依赖项及其推荐的版本号
- 通过引入它后,你可以
不需要
在依赖项上都显式指定版本号
,因为Maven会自动从spring-boot-dependencies 中获取版本号。 - 重点:
它只是声明哪些依赖项应该使用什么版本的,但它本身并不将任何依赖项添加到项目的类路径中
方式一(直接依赖 spring-boot-starter-parent)
直接继承starter parent项目
因为spring-boot-starter-parent 里面也是 引入了 spring-boot-dependencies
缺点就是该项目不能继承父POM了。
在pom文件中添加如下依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
然后点击项目右侧maven的刷新按钮,等到依赖下载完毕就可以了。
前提是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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/>
</parent>
<groupId>org.example</groupId>
<artifactId>springboot-test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
</project>
方式二(使用 dependencyManagement + spring-boot-dependencies)
如果你的项目需要继承另一个项目POM,或者你想要更灵活地控制项目的构建和配置。
那么 使用 spring-boot-dependencies作为 <dependencyManagement> 的一部分更适合
<!-- dependencyManagement的作用
可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致
特别是该项目作为其他项目的父模块时 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
就是在 中添加依赖。完整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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>springboot-test</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 定义可复用的变量 -->
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<!-- dependencyManagement的作用
可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致
特别是该项目作为其他项目的父模块时 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
但是要注意上面我们只是引用了springBoot的依赖管理,真正依赖的jar包还是没有的。
接下来我们就可以按需添加。
比如我们现在要进行web的开发,那么我们就需要有引入web相对应的依赖。
在pom 文件中添加 依赖。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
添加后的完整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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>springboot-test</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 定义可复用的变量 -->
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<!-- dependencyManagement的作用
可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致
特别是该项目作为其他项目的父模块时 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
这里无需写版本号,因为我们已经引入了springBoot的版本号2.6.2. 在它的统一pom文件中已经对所有的经常使用的模块做了统一的依赖管理。
感兴趣的可以点进去springBooot的pom中去看看。
3. 创建启动类
首先在src/main/java下创建一个包: com.jiang.springboottest,
然后在这个包下在创建一个类名字就叫SpringBootTestApplication. 注意千万别叫SpringBootApplication, 或者SpringApplication这类的名字,因为很容易跟springBoot中的类名重复,导致一些莫名其妙的错误。
结构如下:
package com.jiang.springboottest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootTestApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootTestApplication.class, args);
}
}
直接运行这个main方法,这个项目就已经启动了。端口号是8080。
spring-boot-starter-web 中包好的所有依赖了,里面有tomcat, webmvc, json。这就是springBoot带来的按需加载的好处,并且整个项目,我们只写了一个启动了,加了一个注解就完成了,springBoot完全简化了配置。 我们访问一下8080
方式二:在线创建
① spring 官网创建
进入官网,https://start.spring.io/ ,填写信息后点击GENERATE:
② 阿里云脚手架创建
进入阿里云springboot脚手架网址,https://start.aliyun.com/,填写信息后点击获取代码:
方式三:idea 创建 SpringBoot 项目
1. 项目名称、SDK、Java、打包 选择
服务器URL默认为:https://start.spring.io/
由于 现在官网创建springboot项目的最低Java版本是jdk 17
如果你需要创建 java 8
则需要把服务器URL改为:https://start.aliyun.com/ ,就可以选择 java 8
然后点击下一步。开始选择依赖项
2. 依赖项选择
一般我们就选
1.Spring Web:
用于构建Web应用程序,特别是RESTful应用程序。这是大多数Web项目的核心依赖。
包括常用的注解如@Controller
、@RestController
、@GetMapping
等。
2.Spring Boot DevTools:
提供开发者工具,包括自动重启、实时加载等特性,有助于加快开发过程。
3. 项目结构
创建成功以后的项目结构如下
4. 了解 全局pom.xml
这个里面有个关键的 spring-boot-dependencies 依赖。
它提供统一的、经过测试的依赖版本管理,简化了 Spring Boot 项目的依赖配置和维护工作,同时提高了项目的兼容性和稳定性。
让我们在不指定版本号的情况下引入 Spring Boot 的 starter 依赖和其他兼容的库。(用它里面默认的)
然后需要进一步配置一下 “maven配置、setting.xml、本地依赖仓库”的配置
最后 执行启动类,如下
参考文章;
【1】SpringBoot教程(二) | 创建SpringBoot项目
【2】创建springboot项目的三种方法