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

news2024/11/25 15:52:04

在现代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.coloradmin.cn/o/2195221.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亲身经历告诉你该如何自学编程

我2016年硕士毕业后,从一个纯机械学生开始转行做软件开发,其中少不了要自学编程,这其中经历的到现在看来还历历在目。 我曾经写过一些关于我转行做软件开发经历的文章,如果你感兴趣,可以点击这里的链接(我…

国庆期间的问题,如何在老家访问杭州办公室的网络呢

背景:国庆期间的问题,如何在老家访问杭州办公室的网络呢 实现方案:异地组网 实现语言:Java 环境:三个网络,一台拥有公网IP的服务器、一台杭州本地机房内服务器、你老家所在网络中的一台电脑(…

【Git】TortoiseGitPlink提示输入密码解决方法

问题 克隆仓库,TortoiseGitPlink提示输入密码 解法 1、打开TortoiseGit 下的puttygen工具 位置:C:\Program Files\TortoiseGit\bin\ 2、点击【Load】按钮,载入 C:\Users\Administrator\.ssh\ 文件夹下的id_rsa文件。 3、点击save private …

Python数据分析-远程办公与心理健康分析

一、研究背景 随着信息技术的飞速发展和全球化的推进,远程工作(Remote Work)成为越来越多企业和员工的选择。尤其是在2020年新冠疫情(COVID-19)爆发后,全球范围内的封锁措施使得远程工作模式迅速普及。根据…

Mysql数据库--JDBC编程

文章目录 1.JDBC编程基础2.驱动程序下载3.新建项目3.1导入java包3.2转换为库 4.开始创作4.1准备数据库4.2创建DataSource4.3和数据库建立连接4.4构造sql,准备发送到服务器4.5发送sql,执行sql4.6释放系统资源4.7自行输入的设置4.8插入数据完整源代码4.9查…

JavaEE之多线程进阶-面试问题

一.常见的锁策略 锁策略不是指某一个具体的锁,所有的锁都可以往这些锁策略中套 1.悲观锁与乐观锁 预测所冲突的概率是否高,悲观锁为预测锁冲突的概率较高,乐观锁为预测锁冲突的概率更低。 2.重量级锁和轻量级锁 从加锁的开销角度判断&am…

OJ在线评测系统 微服务 用分布式消息队列 RabbitMQ 解耦判题服务和题目服务 手搓交换机和队列 实现项目异步化

消息队列解耦 项目异步化 分布式消息队列 分布式消息队列是一种用于异步通信的系统,它允许不同的应用程序或服务之间传递消息。消息队列的核心理念是将消息存储在一个队列中,发送方可以将消息发送到队列,而接收方则可以在适当的时候从队列中…

Vue2电商平台(六)、注册登录,请求头配置token,token持久化存储;导航守卫(重点);组件内守卫、路由独享守卫

文章目录 一、注册1. 获取注册验证码2. 完成注册用户 二、登录1. 登录获取token2. Home首页携带token获取用户数据3. 持久化存储token4. 退出登录5. 导航守卫 (牛)6. 路由独享守卫beforeEnter7. 组件内守卫(用的很少) 一、注册 1. 获取注册验证码 本系…

基于SSM+小程序的线上教育商城管理系统(教育2)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 微信小程序线上教育商城有管理员,教师,学生三个角色。 1、管理员功能有个人中心,学生管理,教师管理,类型管理,课程…

diffusion model(1.1) 为什么前向传播和反向传播都遵循高斯分布?

DDPM的引用[53]为Deep Unsupervised Learning using Nonequilibrium Thermodynamics,它证明了当 β t \beta_t βt​ 较小时,前向传播和反向传播前向分布和后向分布拥有同样的分布形式。 所引论文的内容如下, 后者又引用了另一篇论文(Fell…

分层解耦-04.IOCDI-IOC详解

一.Bean的声明 springboot为了更好地标识web应用开发中bean对象到底归属于哪一层,在Component注解的基础上又衍生出了三个注解Controller、Service和Repository。分别应用于Controller层,Service层和Dao层。推荐使用衍生注解,当无法判断该be…

Java-数据结构-反射、枚举 |ू・ω・` )

目录 ❄️一、反射: 1、定义: 2、用途: 3、反射相关的类: 4、Class类: 1、Class类中相关的方法: 5、Class反射实例: 1、获得Class对象的三种方式: 2、反射的使用: 6、反…

网络基础擅长组建乐队

让我们荡起双桨 来说说网络吧 现有计算机要进行协作,网络的产生是必然的 局域网:计算机数量更多了, 通过交换机和路由器连接在一起 广域网:将远隔千里的计算机都连在一起 交换机路由器等设备就应运而生 计算机是人的工具,人要协…

layernorm笔记

文章目录 layer norm的解释二维三维 batchnorm和layernorm主要的区别为什么要在序列转录模型中使用layer norm? layer norm的解释 二维 红色为batchnorm,蓝色为layer norm batchnorm对每一个特征算均值和方差 layer norm对每一个批次算均值和方差 三…

窗口系统与图形绘制接口

个人博客:Sekyoro的博客小屋 个人网站:Proanimer的个人网站 当我们想要进行底层图形应用(GUI)开发时,往往需要用到窗口系统和图形库,这里简单介绍一下 视窗系统(window system)与通信协议 下面内容主要针对Unix-like操作系统 视窗系统是以使用视窗作为主要特征之一的图形用…

【含开题报告+文档+PPT+源码】基于SSM + Vue的养老院管理系统【包运行成功】

开题报告 随着社会的发展和经济的进步,人口老龄化问题逐渐凸显。统计数据显示,全球范围内的老龄人口比例正在逐年上升,养老需求也随之增长。养老院作为提供专业养老服务的机构,承担着照料老人、提供医疗保健和社交活动等责任。传…

DVWA Brute Force篇暴力破解 Low/Medium/Hight

这里就不再赘述环境搭建,就默认你已经做好环境搭建的准备了.接下来就步入正题(我的bp是汉化) 任务一,设置级别为low级别,创建好我们的字典文件 任务二 开启抓包,并且我们输入错误的账户密码 (当我知道账户名称为admin时…

Nginx06-静态资源部署

零、文章目录 Nginx06-静态资源部署 1、静态资源概述 静态资源:是在Web开发中不经常改变的文件,比如图片、CSS样式表、JavaScript脚本文件等。这些资源通常是预先编译好的,不需要服务器端的动态处理。动态资源:是在Web开发中需…

fiddler抓包19_模拟IP地址(如异地IP)

课程大纲 使用场景举例:北京模拟海南IP地址“182.118.99.12”发送请求。 ① 打开CustomRules.js文件:Fiddler快捷键“CtrlR”(或鼠标点击,菜单栏 - Rules“规则” - Customize Rules“自定义规则”)。 ② 添加代码,保存&#xff1…