1.项目环境(要用就用新的,仅供参考)
- JDK14
- maven 3.6.3
- SpringBoot为官方最新版
- IDEA 2020.2
2.搭建springBoot项目
-
springBoot项目初始化需要使用到springBoot官网上的一个网站,但是IDEA内部集成了它,所以我们也可以直接再IDEA中创建一个SpringBoot项目
启动项目测试项目环境是否搭建成功
直接去项目的入口程序中点击运行即可启动项目
创建完整的项目包结构
注意:我们只能在项目的入口程序的同级目录下创建我们需要使用到的包结构
在controller文件夹下创建一个controller:HelloController
编写这个controller,写一个测试用的方法
package com.thhh.HelloSpringBoot.controller;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String test01(){
return "Hello SpringBoot,Hello World!";
}
}
-
重启springBoot项目
-
访问我们写的controller接口
分析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>
<!--可见这是一个父工程的一个子model-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository --><!--从父工程路径来开,它的父工程存在于一个远程仓库中-->
</parent>
<!--GAV-->
<groupId>com.thhh</groupId>
<artifactId>HelloSpringBoot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>HelloSpringBoot</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>14</java.version>
</properties>
<!--依赖-->
<dependencies>
<!--springBoot的web依赖
它内部集成了tomcat,装配有DispatcherServlet,
以及spring的配置文件applicationContext.xml-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--springBoot测试依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<!--插件:打包插件依赖-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.4.RELEASE</version>
</plugin>
</plugins>
</build>
</project>
通过观察上面与springBoot相关依赖的名称,我们可以发现springBoot相关的依赖都有一个名称前缀"spring-boot-starter-",其实springBoot的其他依赖也都是使用这个前缀开头的
如上所示,主要有四个部分:
项目元数据信息:创建时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括:groupId、artifactId、version、name、description等
parent:继承spring-boot-starter-parent的依赖管理,控制版本与打包等内容
dependencies:项目具体依赖,这里包含了spring-boot-starter-web用于实现HTTP接口(该依赖中包含了Spring MVC),官网对它的描述是:使用Spring MVC构建Web(包括RESTful)应用程序的入门者,使用Tomcat作为默认嵌入式容器;spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的使用我们将在后面逐步展开。
build:构建配置部分。默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把Spring Boot应用打包成JAR来直接运行
我们来体验一下怎么在一个springBoot项目中使用maven将我们写的项目打包成一个jar包,并可以在本地文件夹中通过命令行的方式将我们的这个微服务模块运行起来
用命令行运行该jar包:java -jar HelloSpringBoot-0.0.1-SNAPSHOT.jar
注意:我们并没有依赖IDEA来执行我们的这个项目,直接就是在我们的本机上就把这个项目运行起来了
但是实际我们创建springBoot项目的时候,经常使用的是IDEA内部集成的选项来创建,而不是登陆上面的网站创建,不管是上面创建springBoot的网站还是IDEA内部将它集成,还有之前学习vue的时候学习的vue-cli以及学习SSM框架的时候使用IDEA的模板创建一个webapp项目,这些都是帮助开发者快速进行开发的项目脚手架,我们使用这些脚手架是因为现在我们使用的框架/工具都遵循一个原则:约定大于配置,正是因为约定大于配置的原则这些脚手架才能按照固定的约定为我们创建符合使用这些框架的项目结构,并帮助我们导入项目开发需要的依赖