图文解析保姆级教程: IDEA里面创建SpringBoot工程、SpringBoot项目的运行和测试、实现浏览器返回字符串

文章目录

  • 一、创建SpringBoot工程(需要联网)
  • 二、 定义请求处理类
  • 三、运行测试

此教程摘选自我的笔记:黑马JavaWeb开发笔记13——Springboot入门(创建、运行&测试项目)、Http协议(请求&响应协议)、HTTP协议解析, 想要详细了解更多有关SpringBoot和HTTP协议的知识可以移步此篇笔记。


这里以需求: 基于SpringBoot的方式开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串:“Hello World ~” 为例,我们进行简单的编写和运行

一、创建SpringBoot工程(需要联网)

  • 基于Spring官方骨架,创建SpringBoot工程’

  • 我选择JDK版本11

  • 在这一步就把自己想要的项目工程名, 保存路径, 包名, 组织名字(一般是域名反写) 给写好
    在这里插入图片描述
    如果你跟我一样这里URL是阿里云也是没问题的
    在这里插入图片描述

  • 我这里Springboot版本要选2.0版本,只有2.0版本才支持jdk11,3.0系列需要jdk17

  • 基本信息描述完毕之后,勾选web开发相关依赖
    在这里插入图片描述

  • 点击Finish之后,就会联网创建这个SpringBoot工程,创建好之后,结构如下:
    在这里插入图片描述

二、 定义请求处理类

  • 在com.itheima这个包下创建一个子包controller
    在这里插入图片描述

  • 然后在controller包下新建一个请求处理类:HelloController

    • 此时只是一个普通的类,还不是请求处理类,需要加上一个标识@RestController,使其变成请求处理类
      在这里插入图片描述
    • 然后在编写的方法上方添加一个映射标识@RequestMapping, 后面写上我们自己想要定义的请求地址, 当浏览器请求这个地址的时候, 就会调用我们下面写的方法了
      在这里插入图片描述
  • 完整代码在这里:
package com.itheima.controller;
import org.springframework.web.bind.annotation.*;@RestController
public class HelloController {@RequestMapping("/hello")public String hello(){System.out.println("Hello World ~");return "Hello World ~";}
}

三、运行测试

  • 找到Application这个JAVA文件(在创建好SpringBoot后这个类就会自动生成), 然后运行这个文件
  • 找个文件在main文件里, 右上角有个运行的绿色小三角
    在这里插入图片描述
  • 运行后的终端窗口长这样:
    在这里插入图片描述

如果这里你是完全按照我的代码进行编写, 运行后会报错, 原因是: 较新版本的IDEA中已经有hello请求处理类,所以运行时会报错,把方法名和映射的地址改成其他名字就行(我这里改成hella)
在这里插入图片描述

  • 运行成功的指定端口在这里
    在这里插入图片描述
  • 打开网址(记得加上我们@RequstMapping标识后面定义的路径)
    在这里插入图片描述
  • 浏览器运行成功后我们可以看到IDEA终端的情况,也出现了Hello World~的字样
    在这里插入图片描述

至此,教程结束


此教程摘选自我的笔记:黑马JavaWeb开发笔记13——Springboot入门(创建、运行&测试项目)、Http协议(请求&响应协议)、HTTP协议解析, 想要详细了解更多有关SpringBoot和HTTP协议的知识可以移步此篇笔记。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Json数据解析报错 -TAB

表现: n8n 解析服务器的数据 报错 json 解析错误 原理: tab键 在代码中为 string tab \t解决办法:tab键替换4个空格 string tab "\t" tab.replaceAll("\t", " ")问题: tab 键 和 空格 在普…

卷积公式的几何学理解

1、Required Knowledge 1.1、概率密度函数 用于描述连续型随机变量在不同取值上的概率密度,记作 f ( x ) f(x) f(x)。 如随机变量 X X X的分布为正态分布,则其概率密度函数为: f ( x ) 1 σ 2 π e − ( x − μ ) 2 2 σ 2 f(x)\frac{1}…

记忆化搜索【上】

509. 斐波那契数 题目链接:斐波那契数 递归(暴搜) 斐波那契数列,最传统的解法,采用递归: class Solution { public:int fib(int n){return dfs(n);}int dfs(int n){if(n 0 || n 1)return n;return d…

大数据-114 Flink DataStreamAPI 程序输入源 自定义输入源 Rich并行源 RichParallelSourceFunction

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

linux 高级IO

IO等(要进行io是要有条件的,要有数据或者有空间)拷贝。高效体现在等待的时间所占比重越低越高效。 阻塞IO:数据没有就绪,read不返回。在内核将数据准备好之前, 系统调用会一直等待。所有的套接字, 默认都是阻塞方式。…

nginx容器映射配置文件后,启动一直报错提示:failed (13: Permission denied)的排查

问题现象: 使用harbor 的install.sh 创建docker-compose之后,出现nginx容器一直重启。 查看日志发现是:配置文件无权限。报错信息如下: Sep 2 16:43:13 172.28.0.1 nginx[1344]: 2024/09/02 08:43:13 [emerg] 1#0: open() “/e…

百度地图绘制电子围栏(包括移动端绘制操作)以及检测坐标是否在电子围栏内

由于本人在PC端仅使用了多边形绘制,但矩形跟多边形用法基本一样,圆形并未使用,如不符合读者需求也可以参考一下。 绘制后得到的数据可能不同,但绘制方法仅仅是传递的参数不同。 关于给坐标数组在地图绘制图形的效果在移动端部分包…

深度学习系列74:语音中的mel谱

1 mel谱介绍 一个人说一句话,其 waveform 可以很不一样,但是 spectrogram 基本上会相似,甚至有人可以通过 spectrogram 来判断说话的内容。语谱图的横坐标是时间,纵坐标是频率,坐标点值为语音数据能量。由于是采用二维…

# 利刃出鞘_Tomcat 核心原理解析(十一)-- WebSocket -- 1

利刃出鞘_Tomcat 核心原理解析(十一)-- Tomcat 附加功能 WebSocket – 1 一、Tomcat专题 - WebSocket - 介绍 1、Tomcat 附加功能:websocket 介绍 1)websocket :是 HTML5 新增的协议,它的目的是在浏览器…

动态规划法-资源分配问题

动态规划法 - 资源分配问题 问题描述 把4个份额的资源分配给3个工程,给定利润表如下表所示,写出资源的最优分配方案的求解过程。 4份资源分配给3个工程的利润表 步骤一:求各个阶段不同分配份额时的最大利润及分配份额 目标 我们的目标是…

53 mysql pid 文件的创建

前言 接上一篇文章 mysql 启动过程中常见的相关报错信息 在 mysql 中文我们在 “service mysql start”, “service mysql stop” 经常会碰到 mysql.pid 相关的错误信息 比如 “The server quit without updating PID file” 我们这里来看一下 mysql 中 mysql.pid 文件的…

微积分复习笔记 Calculus Volume 1 - 1.3Trigonometric Functions

1.3 Trigonometric Functions - Calculus Volume 1 | OpenStax

自己开发完整项目一、登录功能-05(动态权限控制)

一、上节回顾 在上一节中,我们介绍了如何通过数据库查询用户的权限,并对方法级别的接口使用注解的方式进行权限控制,之后通过用户携带的tocken进行解析权限,判断是否可以访问。 具体步骤: 1.在查询用户信息的时候将用户…

map和set的封装

目录 一、红黑树的改造 1.1节点的定义 二、红黑树的迭代器 2.1用节点封装迭代器 2.2迭代器的实现 2.3map和set的迭代器 三、insert的返回值 3.1insert返回值的用处 3.2operator[ ]的实现 四、key不能修改的问题 封装map和set一般分为六步: 封装map和set …

MFC生成dll的区别

主要分三种: A. 动态链接库(dll) B.具有导出项的(dll)动态链接库 C.MFC动态链接库 对比项目:可以根据需要选择哪种dll方便 添加自定义导出功能Demo 1. 添加导出实现接口: A. 导出需要具有:__declspec(dllexport) B. 按照C语言…

Javascript LeeCode选题(汉诺塔求解)

LeeCode选题 汉诺塔递归求解move移动函数hanoi函数main方法测试代码:代码实现 汉诺塔递归求解 汉诺塔介绍: 汉诺塔的的图形(从上到下1,2,3个)实现: 这里我们可以看到因为必须要将第n个移动到…

Spring中基于redis stream 的消息队列实现方法

本文主要介绍了消息队列的概念性质和应用场景,介绍了kafka、rabbitMq常用消息队列中间件的应用模型及消息队列的实现方式,并实战了在Spring中基于redis stream 的消息队列实现方法。 一、消息队列 消息队列是一种进程间通信或者同一个进程中不同线程间的…

uni-app 获取当前位置的经纬度以及地址信息

文章目录 uni.getLocation(objc)获取经纬度和地址调试结果问题 uni-app 获取当前位置的经纬度以及地址信息 uni.getLocation(objc) uni-app官方文档定位API: uni.getLocation(OBJECT) uni.getLocation({type: wgs84,success: function (res) {console.log(当前位置的经度&…

【系统架构设计】嵌入式系统设计(1)

【系统架构设计】嵌入式系统设计(1) 嵌入式系统概论嵌入式系统的组成硬件嵌入式处理器总线存储器I/O 设备与接口 软件 嵌入式开发平台与调试环境交叉平台开发环境交叉编译环境调试 嵌入式系统概论 嵌入性、专用性、计算机系统是嵌入式系统的三个基本的核…

【话题讨论】VS Code:倍增编程动力,实现效率飞跃

目录 引言 一、详情介绍 功能特点 使用场景 提高工作效率 二、效率对比 2.1 高度可定制性与丰富的插件生态 2.2 智能的代码补全与导航 2.3 内置的调试器与版本控制集成 2.4 轻量级与跨平台 2.5 选择合适工具的重要性 2.6 实际案例或数据展示 三、未来趋势 3.1 编…