使用idea初始化一个SpringBoot项目
1. 运行idea,点击 New Project,进入项目创建页面
- 在使用idea创建springboot项目时默认选中就是Spring Initializr方案,该方案指向的地址就是springboot官网的初始化项目地址https://start.spring.io/
- 使用官网创建项目时会生成一个压缩包,还需要再导入idea中,建议直接使用idea创建项目,一步到位
- JDK使用的是1.8版本,没有安装java环境的需要先安装java环境
2. 点击Next,进入项目的基本信息填写页面
配置项解释
-
Group 即GroupId创建项目的组织或组的唯一标识符。GroupId必须满足 Java包名规范,分为多段的形式,比如
org.apache.maven这种,实际上对应的也是JAVA的包的结构(在编辑GroupId时会自动生成相同的包路径,包路径可以修改),即main目录里java的目录结构,这里作者使用的本公司的域名。 - Artifact 即ArtifactID,是项目的唯一标识符,实际对应项目的名称,就是项目根目录的名称。也是不带版本号的jar的名字,唯一要求是使用小写字母,且没有特殊符号。
- Type 项目构建工具,这里我们选择熟悉的Maven,idea自带集成了Maven理论上不再需要安装,但如果需要使用Maven命令还需要到系统环境变量中配置下MAVEN_HOME。作者使用的idea2021 3.1版本的maven版本为3.6.3版本足够使用了。
3. 继续Next,进入选择SpringBoot版本和依赖管理的窗口
这个页面我们可以勾选我们需要使用到的springboot-start-模块,这里我们先都不勾选,等到后面用到时在POM文件中手动添加
4. 继续Next,设置工程在硬盘上的存储位置。最后,点击Finish完成项目的构建
5. 到此我们已经创建了一个基本的SpringBoot项目
- .mvn文件夹 存放mvnw相关文件。存放着maven-wrapper.properties和相关jar包以及名为MavenWrapperDownloader的java文件
- .gitignore 分布式版本控制系统git的配置文件,意思为忽略提交,在 .gitingore 文件中,遵循相应的语法,即在每一行指定一个忽略规则。 如:.log、/target/、.idea
- mvnw 全名是maven wrapper的文件,它的作用是在maven-wrapper.properties文件中记录你要使用的maven版本,当用户执行mvnw clean 命令时,发现当前用户的maven版本和期望的版本不一致,那么就下载期望的版本,然后用期望的版本来执行mvn命令,比如mvn clean命令
- mvnw / mvnw.cmd 执行mvnw命令。mvnw文件适用于Linux(bash),mvnw.cmd适用于Windows 环境。
- .iml文件 intellij idea的工程配置文件;包含当前project的一些配置信息,如模块开发的相关信息,比如java组件,maven组件,插件组件等,还可能会存储一些模块路径信息,依赖信息以及一些别的信息。
- .idea文件夹 存放项目的配置信息,包括数据源,类库,项目字符编码,历史记录,版本控制信息等
- pom.xml 项目对象模型(核心重要),pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件。
- src文件夹 springboot项目文件(核心重要),我们整个项目代码都在这个文件夹内。
作者idea设置隐藏了所有.iml与.idea结尾的文件所以在图上没有显示出来,而且作者一般会将
.mvn、mvnw、mvnw删除,打包时直接手动敲命令即可。
6.删除和隐藏无用文件后的项目结构
WebApplication与WebApplicationTests类都可以直接启动,但我们没有依赖任何模块所以程序加载完成后会自动停止
编写一个测试HTTP接口
1.修改POM文件,添加spring-boot-starter-web依赖
<?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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ihooyah</groupId>
<artifactId>web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>web</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--web开发支持,包含tomcat、spring-webmvc-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--单元测试支持-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
POM依赖解析
-
spring-boot-starter-parent和其父级依赖spring-boot-dependencies作用
1.编码格式默认使用UTF-8
2.java版本默认使用1.8
3.声明了开发中常用的依赖的版本号,自动版本仲裁机制
4.默认的资源过滤和插件管理 -
spring-boot-starter-web
web开发支持,默认使用嵌入式的tomcat作为web容器对外提供HTTP服务,包含了SpringMvc -
spring-boot-starter-test
单元测试支持 -
spring-boot-maven-plugin
maven的打包插件,注意一点:spring-boot-maven-plugin插件在打Jar包时会引入依赖包,也就是说会将所有依赖的jar都打到一起,这会导致如果你的jar需要被其他项目依赖会报错
2.编写接口代码
- 在包
com.ihooyah.web下新建project.controller(各位随意)文件夹 - 创建类
WebController
package com.ihooyah.web.project.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author matengfei
*/
@RestController
public class WebController {
@RequestMapping("helloWorld")
public String hellWord(){
return "Hello World";
}
}
@RestController 相当于
@ResponseBody+@Controller;添加该注解的类会被spring自动管理,该类中所有的方法会自动加上@ResponseBody注解,所有方法返回时会无视视图处理器,直接将数据按照指定的格式写入请求的响应体中。
@RequestMapping 映射请求地址,通过它来指定控制器可以处理哪些URL请求;可以指定请求的方法为post/get等,@RequestMapping可以添加在类和方法上。
- 打开
WebApplication类,右击启动程序,程序启动成功,如下图后在浏览器输入 http://localhost:8080/helloWorld 可以看到页面显示出 Hello World,我们第一个接口就完成了。
编写单元测试
- 在
WebController类中右击,选择Generate --> test (或者光标放到类名上,快捷键 alt+enter,选择Create Test) - 此时在
src.test.java.com.ihooyah.web包,已经生成了和src.main.java下相同的文件路径与名为WebControllerTest的测试类,我们编写一个简单的测试。
单元测试编写方法可以参考springboot官网
- 右击运行在控制台中可以看到我们接口返回 Hello World,单元测试完成