news 2026/10/3 2:36:19

Spring Boot 快速上手:从 Maven 到第一个 Controller

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot 快速上手:从 Maven 到第一个 Controller

资料下载

本博客内容相关下载资料都放在我整理的博客里面了,大家可以自取!!!!

👉 [JavaEE 学习资料下载](https://gitee.com/chasing-dramas/java-ee-learning-resources)

目录

1,认识Maven

2,Maven当中的核心文件

3,创建一个Spring Web接口

一,认识Maven

1.基础知识引入

在真正开始写 Spring Boot 代码之前,我们先接触了一个东西:

Maven

很多刚开始学 Spring 的同学都会有一个疑问:

我明明是来学 Spring 的,为什么老师先给我讲 Maven?
Maven 到底跟 Spring 有什么关系?

其实原因非常简单:

Spring 项目需要很多别人已经写好的 Java 代码,而 Maven 就是专门帮我们把这些代码下载、管理、组织起来的。

假设我们写一个Spring Boot 项目代码中可能会出现@RestController和@RequestMapping这些

@RestController public class HelloController { @RequestMapping("/hello") public String hello() { return "Hello Spring Boot"; } }

这些都是Spring框架提供的代码,所以你想使用得提前拥有Spring的那些.jar文件,所以Maven就出现了,这个就是帮我们将这些代码下载下来并且组织起来,这些代码主要是放在Maven仓库里面的,所以Spring 负责提供功能,Maven 负责把 Spring 需要的代码下载并管理起来,通过pom.xml配置获取jar包,而不需要手动添加jar包

2.Maven的创建

我们通过这样的方式就可以先创建一个Maven

3. Maven Lifecycle

因为我们往往写完一个项目之后,不仅仅写完代码就可以了,还需要编译,测试,打包,最后再是运行发布,所以Maven就给我们提供了一套统一的项目构建方式

在我们创建完之后,再右边的Maven面板中会看到类似下面这样图的结构,我们来先了解一下我们可能会用到的

clean:清除之前编译产生的文件。

compile:编译代码,将.java编译为.class

test:运行测试代码

package:把项目进行打包,可以是jar包,也可以是war包

4,Maven仓库

(1),本地仓库

这个就在你的电脑里面,一般在c盘用户名下面,例如这样:

(2),中央仓库

Maven官方维护的一个远程仓库,大量的Java库都会发布到这里

(3),私服

一般是公司自己搭建的Maven仓库,连接了一些公司自己的项目

二,Maven当中的核心文件

1,pom.xml文件

在我们创建完Maven项目之后,会看到一个pom.xml文件,里面就放当前项目需要的东西清单,我们用一个例子来说明一下,下面这个代码就是放在pom.xml文件里面的

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

1.<dependency>:表示声明了一个依赖,告诉Maven我要什么jar包

2,<groupId>:这个依赖是出自谁家的,属于哪个组织的,像是一个坐标

3,<artifactId>:这个组织下面具体要哪个东西,像是坐标之下的具体事物

当我们的依赖下载下来之后,就会保存在一个我们本地的仓库,一般就是我们的.m2文件里面,大致的过程就像这样

pom.xml
↓
Maven
↓
网上的 Maven 仓库
↓
下载依赖
↓
D:\Maven\.m2\repository
↓
项目使用

2,setting.xml文件

我们还配置了一个这个文件,这个文件是告诉Maven本身该如何去工作,你们可以通过我前面的仓库去下载一个通过阿里云镜像的一个setting,因为我们一般这些依赖都是在国外的,所以我们的下载速度会很慢,但是你配置了我这个会更快一些,具体这个文件最好是是放在和.m2文件一块的

3,怎么理解依赖:

你的代码想完成某个功能,需要用到别人已经写好的代码,这个“别人写好的代码”就是你的依赖,所以我们Maven很重要的一个作用就是依赖管理,将这些依赖管理起来

(1)依赖传递

就是当我的项目依赖B,,但是B有依赖C,我们只需要告诉Maven需要B,这样它就会把C一起下载下来

(2)依赖排除

就是还是刚刚那个情况,当我们不需要B顺带进来的那个依赖C的时候,我们就可以通过下面的代码将C排除出去

<exclusions> <exclusion> ... </exclusion> </exclusions>

(3)依赖冲突

当我们项目依赖B和C,但是B依赖1.0版本的D,C依赖2.0版本的D,那我们这个时候就会产生冲突,究竟需要哪一个版本的D,这个时候我们讲究一个原则,就是优先选择依赖路径较短的版本,就比如:

A → B → C → X 1.0 A → D → X 2.0

我们就先选择2.0版本的,那我来介绍一个好用的插件,方便我们管理以及检查冲突,跟着我的步骤来安装插件:

在我们下载完成之后,点击下面红色框内的按钮就可以进行查看

4,修改Maven文件目录

我们的Maven本地仓库文件一般在c盘用户底下,叫.m2,可以找一下,因为后续会有更多的依赖引进来,所以我们最好将这个文件挪到自己d盘创建的文件夹下面,避免c盘空间过多的占用,我们前面的setting就可以放在m2点击进去的一个目录下面

m2文件夹点击进去,并将setting放在这里

接下来修改Maven配置的目录,我们将我们c盘下面的m2文件夹整个复制下来,然后粘贴到d盘

两个修改完成就像我这样

我们这个修改一般是两部分,一个是当前的代码,一个是之后的代码

只是设置了当前的代码,要想之后也有这个设置就需要这样做

点击之后依旧把这两个设置修改一下,那两个√也是要点上

三,Spring Boot项目创建

spring boot是什么

先有 Spring,为什么还要有 Spring Boot?spring已经是一个很强大的Java开发框架了,但是早期直接使用spring会出现一个问题:就是卑职很多,入门成本高,所以就出现了spring boot,这个出现就是为了简化spring程序开发的,我们可以将这个理解为spring的脚手架,方便搭建,spring boot并不是代替spring,而是为了让spring更方便使用,我们创建 Spring Boot 项目时,它会通过依赖把 Spring 相关组件带进来

1,前期准备

接下来就开始写spring项目,我们社区版本的话就好安装一个插件,方便我们创建项目的,也就是我们在new的时候就可以直接在那里穿件项目,这个插件叫spring-assistant,我们通过刚刚在插件市场寻找的是没有效果的,我们需要一个老版本的,我将这个插件打包成了一个jar包来供你们使用,也在我的仓库里面,并且你要保证你的idea版本的2021-2022

将这个jar包下载下来之后,放在一个盘下面,不要解压,通过我一步一步来进行安装

这两个市场的插件都是无用的

在安装完成之后可以这样进行一个验证,看看你new的时候左边有没有这个spring Intitializr,接下来我们来直接创建一个简单的接口,具体步骤也是跟着我来

点击next

第一个是你的组名,第二个是你的一个项目名称,这些名称可以自己填写,这里的project type要改成Maven,下面的版本都不变,我们输入之后点击next

我们先选择上面的版本,就选择纯数字的,并且最好版本居中,不要最老的,也不要最新的,然后点击web,点击spring web,点击next

这里填写一个名称,并且这里看目录后面是跟着名称的

点击红色框内的load,下载Maven环境

这里有两个问题,一个是版本写错了,一个是找不到Maven,(这些问题都是社区版本通过上面的创建可能会出现的问题)我们先来解决第一个问题,找到pom.xml文件的版本位置,将这个改成你刚刚选择的版本

然后是第二个,进入setting,修改maven home path(这个就是最开始创建的时候project type没有改成Maven导致的)

2,如何看目录

在我们创建完一个spring boot项目之后,左边的项目目录是这样的,里面该如何去看

java:放Java源代码,以后大量的controller以及各种Java类都会放在这里

resources:static主要放html,css,JavaScript这些静态资源,templates只要用于模版资源

target:当你运行DemoApplication程序之后,就会出现这个,这个是项目编译,构建以后产生的内容

pom.xml:这个就是maven的配置文件

3,这里到底启动了什么

当我们点击启动之后,很多人会觉得,不就是跟以前一样,也只是开了一个main方法吗,这里和之前写的main最大的区别就是web服务器也启动,程序开始监听端口,然后等待服务器请求

4,写第一个Controller

controller是什么:这个就相当于是一个浏览器(前端)进入Java后端的一道入口,以前就单纯写一个慢方法,但是现在是要浏览器发送请求--controller--Java方法--执行代码--返回结果--浏览器

接下来我们先在这个红色框的目录下,创建一个Java类,命名为controller

package com.example.demo; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @RequestMapping("/sayHi") public String sayHi() { return "hello,Spring"; } }

我们现在一一来解释一下

@RestController:这个就相当于是告诉spring boot:它是专门用来接收 Web 请求的 Controller,相当于是给类贴了一个类似负责处理浏览器请求的标签

@RequestMapping:这个就是当我们浏览器访问sayHi这个网页的时候,返回对应的sayHi方法

我们写完就可以启动了,我们启动还是在DemoApplication里面,因为这个类是负责将整个项目启动起来,我们写的是启动起来之后怎么处理请求,所以DemoApplication更像是总开关,Controller是每个模块的负责人

这个暂时需要我们自己手动去浏览器里面输入网址:127.0.0.1:8080/sayHi去测试

今天先简单的进行一个了解,完整的流程相当于是这样的:

你在浏览器输入
http://127.0.0.1:8080/sayHi

↓

浏览器:
我要通过 HTTP
访问 127.0.0.1 这台电脑
的 8080 端口
里面的 /sayHi

↓

Spring Boot / Tomcat 收到请求

↓

找到:

@RequestMapping("/sayHi")

↓

执行:

sayHi()

↓

return "hello,Spring"

↓

浏览器显示:

hello,Spring

接下来更多的知识点将在下一个博客进行展示!!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 2:35:47

法律文书生成系统踩坑实录:这5个误区我全踩过

用了两年AI写文书&#xff0c;踩过的坑一个不落。写出来给后来人省点事。误区一&#xff1a;以为"生成"就等于"完成"踩坑经过&#xff1a;早期我拿AI生成的起诉状几乎原样提交&#xff0c;结果诉讼请求里有一项超出了法律关系范围&#xff0c;被要求补正。…

作者头像 李华
网站建设 2026/10/3 2:34:33

Linux NVMe 中断排查与性能优化:NUMA 实战

目录 引言 一、先建立正确的排查思路 二、准备工具与安全注意事项 安全注意事项 三、识别 NVMe 控制器和 PCIe 地址 1. 查看 NVMe 设备 2. 获取 PCIe BDF 地址 3. 确认上层设备是否经过其他块设备 四、检查 PCIe 链路是否正常 五、确认 MSI-X 是否启用 1. 查看 MSI-X…

作者头像 李华
网站建设 2026/10/3 2:33:50

[程序人生]人生必须要不停的上班吗?

&#x1f4a1; 我以前采访过一个做了三十多年铁路调度的老师傅。他快退休的时候&#xff0c;我问了一个很俗的问题&#xff1a;"终于不用上班了&#xff0c;最想干什么&#xff1f;"我以为他会说旅游、睡觉、钓鱼&#xff0c;结果他想了半天&#xff0c;说&#xff1…

作者头像 李华