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 请求的注解,映射路径为 /hello
    public 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 请求的注解,映射路径为 /hello
    public 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"

大功告成!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/779070.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3101.力扣每日一题7/6 Java(接近100%解法)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 思路 解题方法 时间复杂度 空间复杂度 Code 思路 主要是基于对…

connect to github中personal access token生成token方法

一、问题 执行git push时弹出以下提示框 二、解决方法 去github官网生成Token&#xff0c;步骤如下 选择要授予此 令牌token 的 范围 或 权限 要使用 token 从命令行访问仓库&#xff0c;请选择 repo 。 要使用 token 从命令行删除仓库&#xff0c;请选择 delete_repo 其他根…

06-6.4.4 拓扑排序

&#x1f44b; Hi, I’m Beast Cheng &#x1f440; I’m interested in photography, hiking, landscape… &#x1f331; I’m currently learning python, javascript, kotlin… &#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以…

搜索广告召回技术在美团的实践

内容整理自美团技术沙龙第81期《美团在广告算法领域的探索及实践》&#xff08;B站视频&#xff09;。本文首先介绍了美团搜索广告的三个阶段&#xff1a;多策略关键词挖掘、分层召回体系、生成式召回&#xff1b;然后重点介绍了生成式关键词召回、多模态生成式向量召回、生成式…

计算机网络之令牌总线

上文内容&#xff1a;什么是以太网 1.令牌总线工作原理 在总线的基础上&#xff0c;通过在网络结点之间有序地传递令牌来分配各结点对共享型总线的访问权利&#xff0c;形成闭合的逻辑环路。 完全采用半双工的操作方式&#xff0c;只有获得令牌的结点才能发送信息&#xff…

第1章 项目背景(学成在线),项目介绍,环境搭建

1.项目背景 1.1 在线教育市场环境 以下内容摘自https://report.iresearch.cn/content/2021/01/358854.shtml 在线教育行业是一个有着极强的广度和深度的行业&#xff0c;从校内到校外&#xff1b;从早幼教到职业培训&#xff1b;从教育工具到全信息化平台等等。 2020年的新…

NVIDIA RTX Remix开源 让AI驱动的经典游戏重制复兴

游戏开发商往往会让激动的粉丝们在游戏发布后等待数年&#xff0c;以获得他们喜爱的游戏的重制版。不过&#xff0c;这个问题可能很快就会成为过去。NVIDIA 宣布其 RTX Remix 工具包将开放源代码&#xff0c;这将为钟情于经典游戏的玩家带来惊喜。 RTX Remix 是 NVIDIA 的修改套…

Android面试题自定义View之Window、ViewRootImpl和View的三大流程

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 View的三大流程指的是measure(测量)、layout(布局)、draw(绘制)。 下面我们来分别看看这三大流程 View的measure(测量) MeasureSpec Measur…

React 省市查询组件完整代码

目录 一、地区文件 二、Antd配合使用 三、实现效果 一、地区文件 下载地址&#xff1a;全国省市区数据_JSON格式_SQL格式 export const chinaArea {0: {1: 北京,2: 天津,3: 河北省,4: 山西省,5: 内蒙古自治区,6: 辽宁省,7: 吉林省,8: 黑龙江省,9: 上海,10: 江苏省,11: 浙…

Linux之进程控制(下)

目录 进程替换的概念 进程替换的函数 execl​编辑 execlp execle execv execvp execve 上期&#xff0c;我们学习了进程创建&#xff0c;进程终止和进程等待&#xff0c;今天我们要学习的是进程控制中相对重要的板块------进程替换。 进程替换的概念 在进程创建时&…

微米级触觉感知的紧凑视触觉机器人皮肤

视触觉皮肤&#xff08;VTS&#xff09;分为涂层型、标记型和热致变色型。涂层的耐磨性和空间分辨率是涂层型VTS的核心问题。近期&#xff0c;北京邮电大学方斌教授联合中国地质大学&#xff08;北京&#xff09;杨义勇教授&#xff0c;在传感器领域Q1期刊IEEE Sensors Journal…

DHCP服务器

目录 网络传输原则&#xff1a; DHCP: DHCP作用&#xff1a; 优缺点&#xff1a; DHCP的原理&#xff1a; 用虚拟机模拟DHCP服务器​编辑​编辑 网络传输原则&#xff1a; 网络是双向的&#xff0c;网络是有方向的 解释&#xff1a;网络是双向的&#xff1a; …

轻松快速上手Thekey库,实现数据加密无忧

Thekey的概述&#xff1a; Thekey库是一个Python库,旨在简化数据加密、解密、签名和验证的过程。它提供了一套简洁易用的接口,用于处理各种加密任务,适合需要在应用程序中实现安全数据处理的开发人员. 安装Thekey库 pip install thekey使用Thekey库进行基本加密和解密操作的…

uniapp 在手机上导出excel

1.创建excelDev.js文件 export default {exportExcel(fileData, documentName excel) {plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, function(fs) {let rootObj fs.rootlet fullPath rootObj.fullPathconsole.log("开始导出数据")// 创建文件夹rootObj…

Linux进程(1)(结构-操作系统-进程)

目录 1.体系结构 2.操作系统&#xff08;Operator System&#xff09; 1&#xff09;概念&#xff1a; 2&#xff09;结构 示意图&#xff08;不完整&#xff09; 3&#xff09;尝试理解操作系统 4&#xff09;系统调用和库函数概念 3.认识进程 1.启动 2.进程创建的代码…

11.x86游戏实战-汇编指令add sub inc dec

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;10.x86游戏实战-汇编指令lea 首先双击下图红框位置 然后在下图红框位置输入0 然…

Lock4j简单的支持不同方案的高性能分布式锁实现及源码解析

文章目录 1.Lock4j是什么?1.1简介1.2项目地址1.3 我之前手写的分布式锁和限流的实现 2.特性3.如何使用3.1引入相关依赖3.2 配置redis或zookeeper3.3 使用方式3.3.1 注解式自动式3.3.2 手动式 4.源码解析4.1项目目录4.2实现思路 5.总结 1.Lock4j是什么? 1.1简介 lock4j是苞米…

CorelDRAW2024设计师的神器,一试就爱上!

&#x1f3a8; CorelDRAW 2024&#xff1a;设计界的瑞士军刀&#xff0c;让创意不再受限&#xff01;&#x1f31f; 嗨&#xff0c;各位朋友们&#xff01;&#x1f44b;&#x1f3fb; 今天我要跟大家分享一个神奇的设计神器——CorelDRAW 2024。作为设计师的你&#xff0c;是否…

第10章 项目总结02:针对当前项目的面试题

1 项目概况 1.1 项目介绍 从以下几个方面进行项目介绍&#xff1a; 1、项目的背景&#xff1a;做什么业务、服务的客户群是谁、谁去运营、自研还是外包等问题。 2、项目的业务流程&#xff1a;课程发布流程、断点续传流程、视频处理流程、认证授权流程、支付流程、CI/CD流程…

three.js 后期处理,物体高亮

效果图 代码 引入资源文件&#xff0c;在初始化时创建后处理对象 // 用于边缘高亮的插件// 引入后处理扩展库EffectComposer.jsimport { EffectComposer } from "three/addons/postprocessing/EffectComposer.js";// 引入渲染器通道RenderPassimport { RenderPass }…