SpringBootWeb快速入门!详解如何创建一个简单的SpringBoot项目?

在现代Web开发中,SpringBoot以其简化的配置和快速的开发效率而受到广大开发者的青睐。本篇文章将带领你从零开始,搭建一个基于SpringBoot的简单Web应用~

一、前提准备

想要创建一个SpringBoot项目,需要做如下准备:

  1. idea集成开发环境
  2. 安装并配置好Maven工具(有些idea版本可以用其内置集成的Maven)
  3. 需求分析:基于SpringBoot的方式开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串 “Hello World ”

一切准备就绪后,我们就可以打开idea进行SpringBoot项目的创建了!


二、SpringBoot项目创建与运行

  1. 创建SpringBoot工程项目
  2. 定义HelloController类,添加方法hello,并添加注解
  3. 测试运行

2.1 创建SpringBoot工程项目

注意:

  1. 创建过程需要联网
  2. 本项目基于idea2023.3.7版本,某些按钮和选项的位置不同版本可能会有区别,但是都大差不差
  3. 本项目基于idea旗舰版(专业版),社区版创建会更麻烦一点,如果不是旗舰版的,可以移步其他教程

2.1.1 进入idea点击New Project新建一个项目工程

如果没有退回到上述开始界面:

  • 可以点击File->Close Project关闭当前项目回到idea开始界面
  • 或者点击File->New->Project...直接新建一个项目

2.1.2 点击Spring Initializr创建一个Spring项目骨架。右边的Server URL可能会加载一会儿,如果加载失败试试重新加载。

2.1.3 按照下图完成设置,设置完成后点击Next下一步

2.1.4  这一步我们选择最新默认的SpringBoot稳定版本3.3.4版本。由于当前需要开发一个web项目,我们展开Web,勾选Spring Web,添加web开发相关依赖。完成后点击create创建项目。

2.1.5 正在联网创建中,稍作等待

2.1.6 如果加载完成后仍有报错可以点击刷新重新加载,如果加载完成后仍有报错,可以再稍加等待,可能过1-2分钟后报错就会消失

加载完成后,一个Spingboot项目的骨架就创建完成啦!

2.2 定义HelloController类

2.2.1 在com.chargeteam这个包下创建一个子包controller

2.2.2 在此包下创建一个HelloController类

2.2.3 添加响应方法hello,并添加注解

HelloController类代码:

package com.chargeteam.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController//将类声明为控制器
public class HelloController {@RequestMapping("/hello")//处理 "/hello" 路径的请求public String hello() {System.out.println("hello world");//它打印"hello world"到控制台return "Hello World";//返回字符串"Hello World"作为HTTP响应内容}
}

2.3 测试运行

2.3.1 打开com.chargeteam包下SpringBoot自动生成的引导类

2.3.2 点击运行类中的启动方法

2.3.3 运行窗口如下,而且右侧可以看见该程序网络端口为8080

2.3.4 最后我们打开浏览器,输入网址:http://localhost:8080/hello,HelloController类中的响应方法hello()返回的字符串“HelloWorld”被成功展示到浏览器中。

这说明这个简单的SpringBoot项目被我们成功地创建与运行了!


三、web分析与拓展

3.1localhost:8080/hello

  • 意思是向本地计算机中的8080端口程序获取资源位置是/hello的数据
  • 8080端口程序在服务器找/hello位置的资源数据发给浏览器

3.2 服务器(计算机)

  1. 接收到浏览器发送的信息(如:/hello)
  2. 在服务器上找到/hello的资源
  3. 把资源发送给浏览器

3.3 网络三要素

IP :    网络中计算机唯一标识

端口 :计算机中运行程序唯一标识

协议 :网络中计算机之间交互的规则(http协议)


四、文末

通过本篇文章的讲解,你已经成功搭建了一个简单的SpringBoot项目,并学会了如何使用控制器响应Web请求。这仅仅是SpringBoot的基础应用,后续你可以在此项目基础上扩展更多的功能模块,进一步探索SpringBoot强大的生态体系。

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

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

相关文章

wordpress Contact form 7发件人邮箱设置

此教程仅适用于演示站有留言的主题,演示站没有留言的主题,就别往下看了,免费浪费时间。 使用了Contact form 7插件的简站WordPress主题,在有人留言时,就会发邮件到网站的系统邮箱(一般与管理员邮箱为同一个)里。上面显…

SpringCloud简介 Ribbon Eureka 远程调用RestTemplate类 openfeign

〇、SpringCloud 0.区别于单体项目和soa架构,微服务架构每个服务独立,灵活。 1. spring cloud是一个完整的微服务框架,springCloud包括三个体系: spring cloud Netflix spring cloud Alibaba spring 其他 2.spring cloud 版本命名…

论文阅读笔记-LogME: Practical Assessment of Pre-trained Models for Transfer Learning

前言 在NLP领域,预训练模型(准确的说应该是预训练语言模型)似乎已经成为各大任务必备的模块了,经常有看到文章称后BERT时代或后XXX时代,分析对比了许多主流模型的优缺点,这些相对而言有些停留在理论层面,可是有时候对于手上正在解决的任务,要用到预训练语言模型时,面…

软件设计师(软考学习)

数据库技术 数据库基础知识 1. 数据库中的简单属性、多值属性、复合属性、派生属性简单属性:指不能够再分解成更小部分的属性,通常是数据表中的一个列。例如学生表中的“学号”、“姓名”等均为简单属性。 多值属性:指一个属性可以有多个值…

sql-labs:42~65

less42(单引号闭合、报错回显) login_useradmin login_password123 and if(11,sleep(2),1) # # 单引号闭合 ​ login_useradmin login_password123and updatexml(1,concat(0x7e,database(),0x7e),1)# # 报错回显…

mysql UDF提权(实战案例)

作者:程序那点事儿 日期:2024/09/29 16:10 什么是UDF? 全称 User Define Function (用户自定义函数)UDF提权,就是通过自定义函数,实现执行系统的命令。 dll(windows,dll文件是c语…

5.人员管理模块(以及解决运行Bug)——帝可得管理系统

目录 前言一、页面修改表单展示修改 二、新增对话框修改三、修改对话框修改修改时展示创建时间 四、解决页面展示错误五 、 解决【java.lang.NullPointerException: null】 Bug 前言 提示:本篇完成人员管理模块的开发,具体需求、修改代码的路径和最终效…

车辆种类分类识别数据集,可以识别7种汽车类型,已经按照7:2:1比 例划分数据集,训练集1488张、验证集507张,测试集31张, 共计2026张。

车 车辆种类分类识别数据集,可以识别7种汽车类型,已经按照7:2:1比 例划分数据集,训练集1488张、验证集507张,测试集31张, 共计2026张。 数据集分为一类客车(tinycar) ,类客车(midcar) ,三类 客车(bigcar) ,…

重学SpringBoot3-集成Redis(六)之消息队列

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(六)之消息队列 1. 什么是发布/订阅(Pub/Sub)?2. 场景应用3. Spring Boot 3 整合 R…

感知机学习算法

感知机 一、感知机简介二、感知机模型2.1 感知机的基本组成2.2 求和函数2.2.1 时间总合2.2.2 空间总合 2.3 激活函数2.4 学习算法2.4.1 赫布学习规则2.4.2 Delta学习规则 三、 结论参考文献 一、感知机简介 M-P神经元模型因其对生物神经元激发过程的极大简化而成为神经网络研究…

微信小程序学习实录10:轻松获取用户昵称、头像与登录openid实战攻略

在微信小程序开发中,获取用户的个人信息(如昵称和头像)以及用户的唯一标识OpenID是非常常见的需求。本文将详细介绍如何通过微信提供的API来实现这些功能,并提供一个完整的实战案例。 用户选择头像 微信提供了chooseAvatar组件&…

ROS基础入门——实操教程

ROS基础入门——实操教程 前言 本教程实操为主,少说书。可供参考的文档中详细的记录了ROS的实操和理论,只是过于详细繁杂了,看得脑壳疼,于是做了这个笔记。 Ruby Rose,放在这里相当合理 本文初编辑于2024年10月4日 C…

使用vscode调试wails项目(golang桌面GUI)

文章目录 安装 Golang 环境安装 NPM安装 VSCode安装 Go 插件安装 Go 插件依赖工具安装 Wails系统检查 准备项目Visual Studio Code 配置安装和构建步骤参考资料 安装 Golang 环境 访问 golang 官网下载环境安装包:https://go.dev/dl/ 安装 NPM 从 Node 下载页面 …

时序必读论文16|ICLR24 CARD:通道对齐鲁棒混合时序预测Transformer

论文标题:CARD: Channel Aligned Robust Blend Transformer for Time Series Forecasting 论文链接:https://arxiv.org/abs/2305.12095 代码链接:https://github.com/wxie9/CARD 前言 Transformer取得成功的一个关键因素是通道独立&#…

鸿蒙开发之ArkUI 界面篇 十九 Flex组件的特点

其语法格式是: Flex(参数对象){ 字组件1, 字组件2, 字组件3, 字组件4 } 这里你会发现,其实和Row容器,Colum容器的语法格式差不多,核心的关键是Colum、Row是不支持换行,实现FlexInterface接口,对外提供的属性是F…

数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(二).设置主键自增等特点

前言 在上一节中,主要介绍了 Navicat Premium 17 的使用以及创建一个基础的表格。当时只设置了给数据表补充字段,没有设置给数据表删除字段。现在补充一下。 ALTER TABLE student ADD test int(4); 给名为 student 的数据表添加 test 列&#xf…

Android OTA升级

针对Android系统OTA升级,MTK平台有相关介绍文档:https://online.mediatek.com/apps/faq/detail?faqidFAQ27117&listSW 概念一:OTA包的构建 AOSP full build:Android原生提供的全量包的构建,意思就是可以从任何一…

数据结构:AVL树

前言 学习了普通二叉树,发现普通二叉树作用不大,于是我们学习了搜索二叉树,给二叉树新增了搜索、排序、去重等特性, 但是,在极端情况下搜索二叉树会退化成单边树,搜索的时间复杂度达到了O(N),这…

【EXCEL数据处理】000020 案例 保姆级教程,附多个操作案例。EXCEL使用表格。

前言:哈喽,大家好,今天给大家分享一篇文章!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【EXCEL数据处理】000020 案例 保姆级教程,附多个操作案例。…

vulnhub-digitalworld.local DEVELOPMENT靶机

vulnhub:digitalworld.local: DEVELOPMENT ~ VulnHub 导入靶机,放在kali同网段,扫描 靶机在192.168.114.129,扫描端口 开了几个端口,8080端口有网页,访问 说是让访问html_pages 似乎把页面都写出来了&…