当前位置: 首页 > news >正文

SpringBoot新手快速入门系列教程四:创建第一个SringBoot的API

首先我们用IDEA新建一个项目,请将这些关键位置按照我的设置设置一下

接下来我将要带着你一步一步创建一个Get请求和Post请求,通过客户端请求的参数,以json格式返回该参数{“message”:"Hello"}

1,先在IDE左上角把这里改为文件模式

2,我在这里对项目结构就不多解释了,直接把最常用到的几个文件圈了出来

在Spring Boot项目中,以下文件和目录的作用如下:

  1. HelloApplication.java的作用如下:启动类:它是包含main方法的类,Spring Boot通过这个方法来启动应用程序。配置类:它通常标注了@SpringBootApplication注解,该注解是一个组合注解,包括了@Configuration@EnableAutoConfiguration@ComponentScan。这使得Spring Boot能够自动扫描、配置和加载所有相关的bean和配置。

  2. application.properties:

    这是Spring Boot的配置文件,用于定义应用程序的配置属性。你可以在这里设置数据库连接信息、服务器端口、日志级别等配置。
  3. build.gradle:

    这是Gradle的构建脚本文件,用于定义项目的依赖、构建任务和其他配置。Gradle通过这个文件来管理项目的构建过程。

   另外setting.gradle也会偶尔不用到

 settings.gradle 文件在Gradle项目中用于配置项目的基本设置。它主要用于以下几个目的:

  1. 定义项目名称:在单项目构建中,可以通过 settings.gradle 文件设置项目名称。
  2. 多项目构建:在多模块项目中,settings.gradle 文件用于定义构建中包含的所有子项目。

 2,编译

新建项目后我们会先编译一下空项目,以确保项目是否生成正确,请先找到图中所示的脚本

先点击一下clean脚本没有问题后再点击build脚本

3,创建类

我们现在在hello文件夹上点击右键,新创建HelloController.java文件,并添加以下内容:

4,引入头文件

import org.springframework.web.bind.annotation.GetMapping;  // 用于处理 GET 请求的注解
import org.springframework.web.bind.annotation.PostMapping;  // 用于处理 POST 请求的注解
import org.springframework.web.bind.annotation.RequestParam;  // 用于提取请求参数的注解
import org.springframework.web.bind.annotation.RestController;  // 将类标识为 REST 控制器,返回 JSON 响应import java.util.HashMap;  // 用于创建和操作键值对集合
import java.util.Map;  // 用于创建和操作键值对集合

5,Rest控制器

/*** HelloController 是一个 REST 控制器类,提供两个端点:一个用于处理 GET 请求,* 一个用于处理 POST 请求。两个端点的功能都一样,前端发送带参数的请求,服务端返回* 一个包含请求参数字符串的 JSON 响应。*/
@RestController  // 标识该类为 REST 控制器,Spring Boot 将自动处理 HTTP 请求并返回 JSON 响应
public class HelloController {}

6,添加一个Get请求

  /*** 处理 GET 请求的端点。请求路径为 /hello。* 该方法接收一个字符串类型的请求参数 message,并返回一个包含该参数的 JSON 响应。** @param message 请求参数* @return 包含请求参数的 JSON 响应*/@GetMapping("/hello")  // 处理 GET 请求的注解,映射路径为 /hellopublic Map<String, String> getHello(@RequestParam String message) {Map<String, String> response = new HashMap<>();  // 创建一个 HashMap 来存储响应数据response.put("message", message);  // 将请求参数存入响应数据return response;  // 返回响应数据}

3,配置运行端口

server.port=8080

4,运行程序

接下来我们把Play按钮设置为启动

然后点击启动按钮,看到下面这行日志就说明启动成功了

4,测试Get请求

我们可以打开浏览器在浏览器的地址栏输入

http://localhost:8081/hello?message=HelloSpring

5,添加Post请求

@PostMapping("/hello")  // 处理 POST 请求的注解,映射路径为 /hellopublic Map<String, String> postHello(@RequestParam String message) {Map<String, String> response = new HashMap<>();  // 创建一个 HashMap 来存储响应数据response.put("message", message);  // 将请求参数存入响应数据return response;  // 返回响应数据}

打开cmd

运行命令:

curl -X POST "http://localhost:8081/hello" -d "message=HelloWorld"

大功告成!

相关文章:

SpringBoot新手快速入门系列教程四:创建第一个SringBoot的API

首先我们用IDEA新建一个项目&#xff0c;请将这些关键位置按照我的设置设置一下 接下来我将要带着你一步一步创建一个Get请求和Post请求&#xff0c;通过客户端请求的参数&#xff0c;以json格式返回该参数{“message”:"Hello"} 1,先在IDE左上角把这里改为文件模式…...

第1集《修习止观坐禅法要》

《修习止观坐禅法要》诸位法师&#xff0c;诸位学员&#xff0c;阿弥院佛&#xff01; 我们今天能够暂时放下世间的尘劳&#xff0c;大家在一起研究佛法的课程&#xff0c;这件事情在我们的生命当中是非常的稀有难得。 基本上&#xff0c;我们佛法的修习目的是追求身心的安乐…...

markdown变量引用

格式 变量定义通常是路径或网络链接 变量测试...

如何使用echart做K线图

使用ECharts制作K线图需要先引入ECharts的库文件&#xff0c;然后通过调用相应的API来配置和渲染K线图。以下是一个简单的示例代码&#xff1a; // 引入ECharts库文件 <script src"https://cdn.jsdelivr.net/npm/echarts5.0.0/dist/echarts.min.js"></scri…...

Spring Boot应用使用GraalVM本地编译相关配置

1. 介绍 Java应用程序可以通过Graalvm Native Image提前编译生成与本地机器相关的可执行文件。与在JVM执行java程序相比&#xff0c;Native Image占用内存更小和启动速度更快。 从spring boot3开始支持GraalVM Native Image&#xff0c;因此要使用此特性&#xff0c;需要把sp…...

代码的坏味道——长函数

前言&#xff1a;一个函数应该尽量做一件事情&#xff0c;如果非要做多个事情&#xff0c;要做函数提取&#xff0c;每次迭代应该考虑到是否有重复代码或者可以优化的代码。 长函数&#xff1a;长函数的产生&#xff1a; 逻辑是平铺直叙的需求迭代没有考虑优化&#xff0c;一次…...

【机器学习】基于密度的聚类算法:DBSCAN详解

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 基于密度的聚类算法&#xff1a;DBSCAN详解引言DBSCAN的基本概念点的分类聚类过…...

Qt 网络编程 网络信息获取操作

学习目标&#xff1a;网络信息获取操作 前置环境 运行环境:qt creator 4.12 学习内容 一、Qt 网络编程基础 Qt 直接提供了网络编程模块,包括基于 TCP/IP 的客户端和服务器相关类,如 QTcpSocket/QTcpServer 和 QUdpSocket,以及实现 HTTP、FTP 等协议的高级类,如 QNetworkRe…...

linux中的进程以及进程管理

程序和进程的区别和联系 程序&#xff08;Program&#xff09;&#xff1a; 程序是一组指令的集合&#xff0c;通常存储在磁盘或其他存储设备上&#xff0c;是一种静态的概念。程序本身并没有运行&#xff0c;它只是一个可执行的文件或脚本&#xff0c;包含了一系列的指令和数…...

pyecharts可视化案例大全(11~20)

pyecharts可视化案例大全(11~20) 十一、设置动画效果十二、直方图带视觉组件十三、设置渐变色(线性渐变)十四、设置渐变色(径向渐变)十五、设置分割线十六、设置分隔区域十七、面积图十八、堆叠面积图十九、自定义线样式二十、折线图平滑处理十一、设置动画效果 在图表加载前…...

Docker在人工智能领域的应用与实战

摘要 人工智能&#xff08;AI&#xff09;技术的快速发展带来了对高效开发和部署工具的需求。Docker作为一个创新的容器化平台&#xff0c;为AI领域提供了强大的支持。本文详细介绍了Docker在AI模型开发、训练、部署以及服务器集群管理等方面的应用&#xff0c;并探讨了其在数…...

python基础篇(8):异常处理

在Python编程中&#xff0c;异常是程序运行时发生的错误&#xff0c;它会中断程序的正常执行流程。异常处理机制使得程序能够捕获这些错误&#xff0c;并进行适当的处理&#xff0c;从而避免程序崩溃。 1 错误类型 代码的错误一般会有语法错误和异常错误两种&#xff0c;语法错…...

FortiClient 用IPsec VPN 远程拨号到FortiGate说明文档

说明&#xff1a;本文档针对IPsec VPN 中的Remote VPN 进行说明&#xff0c;即远程用户使用PC中的FortiClient软件&#xff0c;通过VPN拨号的方式连接到公司总部FortiGate设备&#xff0c;访问公司内部服务器。在配置之前需要统一VPN策略和参数&#xff0c;如模式… 说明&#…...

Git-Unity项目版本管理

目录 准备GitHub新建项目并添加ssh密钥Unity文件夹 本文记录如何用git对unity 项目进行版本管理&#xff0c;并可传至GitHub远端。 准备 名称版本windows11Unity2202.3.9.f1gitN.A.githubN.A. GitHub新建项目并添加ssh密钥 GitHub新建一个repositorywindows11 生成ssh-key&…...

每日一题~ leetcode 402 (贪心+单调栈)

click me! 这个贪心的推导在leetcode上已经很明确了。 click me! 删除k个数&#xff0c;可以先考虑删除一个数。这也是一种常见的思路。&#xff08;如果进行同样的操作多次&#xff0c;可以先只 考虑一次操作如何实现&#xff0c;或者他的影响。完成这一次操作后&#xff0c;…...

设计模式之模版方法

模版方法介绍 模版方法&#xff08;Template Method&#xff09;模式是一种行为型设计模式&#xff0c;它定义了一个操作&#xff08;模板方法&#xff09;的基本组合与控制流程&#xff0c;将一些步骤&#xff08;抽象方法&#xff09;推迟到子类中&#xff0c;使得子类可以在…...

docker部署redis/mongodb/

一、redis 创建/root/redis/conf/redis.conf 全部执行命令如下 docker run -it -d --name redis -p 6379:6379 --net mynet --ip 172.18.0.9 -m 400m -v /root/redis/conf:/usr/local/etc/redis -e TXAsia/Shangehai redis redis-server /usr/local/etc/redis/redis.conf 部署…...

LeetCode 581. 最短无序连续子数组

更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。 组队打卡&#xff0c;更多解法等你一起来参与哦&#xff01; LeetCode 581. 最短无序连续子数组&#xff0c;难度中等。 排序 解题思路&#xff1a;首先对数组排序&#xff0c;然后找出两侧顺序的数组&#x…...

数据库可视化管理工具dbeaver试用及问题处理。

本文记录了在内网离线安装数据库可视化管理工具dbeaver的过程和相关问题处理方法。 一、下载dbeaver https://dbeaver.io/download/ 笔者测试时Windows平台最新版本为&#xff1a;dbeaver-ce-24.1.1-x86_64-setup.exe 二、安装方法 一路“下一步”即可 三、问题处理 1、问…...

29、php实现和为S的两个数字(含源码)

题目&#xff1a;php 实现 和为S的两个数字 描述&#xff1a; 输入一个递增排序的数组和一个数字S&#xff0c;在数组中查找两个数&#xff0c; 是的他们的和正好是S&#xff0c;如果有多对数字的和等于S&#xff0c;输出两个数的乘积最小的。 输出描述&#xff1a; 对应每个测…...

Buzz音频转录完全指南:3大核心功能+5个实战场景,快速掌握本地语音转文字技术

Buzz音频转录完全指南&#xff1a;3大核心功能5个实战场景&#xff0c;快速掌握本地语音转文字技术 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Tr…...

Unity UGUI轻量UI框架:200行代码实现零GC界面管理

1. 为什么还要自己手写UI框架&#xff1f;——当UGUI原生方案开始“卡脖子”很多人看到这个标题第一反应是&#xff1a;“都2024年了&#xff0c;还手写UI框架&#xff1f;Asset Store里几十个成熟方案&#xff0c;NGUI、FairyGUI、TextMeshPro配套的UI系统一抓一大把&#xff…...

保姆级避坑指南:在Ubuntu 22.04上搞定ROS2 Humble、PX4与Gazebo的联合仿真(附Empy版本降级)

保姆级避坑指南&#xff1a;Ubuntu 22.04下ROS2 Humble与PX4联合仿真的21个关键陷阱当你在Ubuntu 22.04上第一次尝试搭建ROS2 Humble、PX4与Gazebo的联合仿真环境时&#xff0c;可能会遇到比预期更多的挑战。这不是一个简单的"复制粘贴命令就能完成"的任务——版本冲…...

解密高校教师必会的Gemini 3.1 Pro五大科研隐藏技能:从论文评估到创新点锁定

各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。 科研路上,有人发完顶刊顺利晋升,有人还在为创新点抓耳挠腮。 大多数教…...

如何快速掌握MPC视频渲染器:面向初学者的完整教程

如何快速掌握MPC视频渲染器&#xff1a;面向初学者的完整教程 【免费下载链接】VideoRenderer Внешний видео-рендерер 项目地址: https://gitcode.com/gh_mirrors/vi/VideoRenderer 想要在Windows系统上获得影院级的视频播放体验吗&#xff1f;MPC…...

Godot 4.3随机地图性能优化:避开TileMap与RNG陷阱

1. 为什么刚写完第一版随机地图就崩溃&#xff1f;——从“能跑”到“能用”的真实断层你兴冲冲地照着教程敲完几十行GDScript&#xff0c;RandomNumberGenerator初始化了&#xff0c;for x in range(width)循环也套好了&#xff0c;甚至还在_draw()里用draw_rect()把每个格子都…...

AI专著生成必备工具,轻松撰写20万字专著,质量与效率双保障!

学术专著的写作是一个严谨的过程&#xff0c;其背后需要大量的资料和数据作为基础。搜集和整理这些资料与数据往往是写作过程中最繁琐且耗时的部分。研究人员需要广泛收集国内外的前沿文献&#xff0c;确保所用文献不仅具备权威性&#xff0c;还要与研究主题密切相关。同时&…...

NBT数据可视化编辑解决方案:NBTExplorer技术解析与应用指南

NBT数据可视化编辑解决方案&#xff1a;NBTExplorer技术解析与应用指南 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer NBTExplorer是一款面向Minecraft数据管理的…...

原来专业的赛事专用匹克球厂家有这么多门道?

引言在匹克球运动蓬勃发展的当下&#xff0c;专业赛事专用匹克球的选择至关重要。很多人可能不知道&#xff0c;看似普通的赛事专用匹克球背后&#xff0c;其实隐藏着诸多门道。接下来&#xff0c;我们就一起深入探究专业赛事专用匹克球厂家的秘密。核心技术与材料的门道专业赛…...

白嫖Codex!一行代码不花接入国产DeepSeek-v4-pro,从此告别ChatGPT月费

Codex 如何接入国产模型 DeepSeek-v4-pro 保姆级教程 使用 Claude Code、Codex 已经好几个月了&#xff0c;不得不感叹现在的 AI 工具真的太强大了。目前市面上很多 Claude Code 如何接入大模型的教程&#xff0c;但 Codex 却比较少&#xff0c;一方面因为 Codex 需要 ChatGPT …...