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

创建一个Spring Boot项目

文章目录

  • 一、如何创建一个Spring Boot项目
    • 1.1 项目创建:专业版 or 社区版 or 网站创建
    • 1.2 数据配置
    • 1.3 项目启动
    • 1.4 代码编写
  • 二、Spring Boot 项目文件介绍
  • 三、Web服务器
  • 四、根据HTTP状态码解决bug
    • 4.1 404
    • 4.2 500
  • 五、Spring VS Spring Boot VS Spring Web MVC
    • 5.1 Spring
    • 5.2 Spring Boot
    • 5.3 Spring Web MVC
      • Spring Web
      • MVC
      • Spring MVC

一、如何创建一个Spring Boot项目

1.1 项目创建:专业版 or 社区版 or 网站创建

  1. 专业版:直接使用即可
    在这里插入图片描述

  2. 社区版:需要去额外安装【Spring Boot helper】插件,不能直接选installed,因为该插件要收费(有钱另说)

    • 如何免费下载插件:点击【Plugin homepage】,选择免费的版本,下载为zip文件,不需要解压,最后如下图把下载的zip文件导进去,而后重启IDEA即可
      在这里插入图片描述
  3. 使用网站创建:使用 该网站 进行创建,下载并解压缩后,在IDEA上打开即可

1.2 数据配置

  1. 关于Spring Boot的版本问题

    • 优点:我们不再需要去管理版本问题了,如考虑像“Tomcat要对应上Servlet版本”的问题,父类的pom文件会帮我们解决
      在这里插入图片描述
  2. 参数选择
    在这里插入图片描述

在这里插入图片描述

1.3 项目启动

  1. 提供了一个启动类,直接启动这个即可
  2. 启动类叫什么无所谓

在这里插入图片描述
3. 项目启动的日志
在这里插入图片描述

1.4 代码编写

  1. @RestController 注解:表示当前的代码能够被我们的浏览器识别
  2. @RequestMapping 注解:对应了路径
//路径为【127.0.0.1:8080/sayhi】
@RestController
public class HelloController {@RequestMapping("/sayhi")public String sayHi(){return "hello";}
}

二、Spring Boot 项目文件介绍

  1. 没有用的文件:.mvn、HELP.md、mvnm、mvnm.cmd
    • 因为我们是按照Spring Boot的模版来创建项目,所以会给我们添加一些实际上没什么用的配置文件,直接删掉即可。
  2. .idea:代表了IDEA相关的配置
  3. src:代码
    • main
      • java
        • com:放置Java源代码
        • resources:资源目录,主要是配置相关的代码
          • static:主要放置静态文件
          • templates:主要放置模版
          • application.properties:Spring Boot 项目的配置文件
    • test:放置了开发人员的测试代码,用来测试某一个文件是否有bug。注意,测试代码的目录结构和【java】里是一致的,并且我们测试完后也要让他们保持一致,方便后续寻找代码
<!-- 默认引入的test的包,test是测试的框架 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>
  1. target:编译后的class文件
  2. pom.xml:Maven 配置文件
  3. 关于文件夹的颜色:要求颜色匹配
    • 颜色的作用:颜色表示“当前目录为XXX功能”,设置完之后,Maven才知道我们的项目是什么样的,进而完成构建操作。所以文件夹的颜色也会影响代码的运行。
    • 形式:src里的java文件夹是蓝色的,test里的是绿色的。
    • 带颜色的文件夹名:名字是不重要的,我们可以随意改名,但文件夹的颜色一定要确保对应
    • 如何更改文件夹颜色:两种方法更改

在这里插入图片描述

  1. 关于修改文件名:快捷键shift + F6 或者 Refactor ----> Rename
    • 为何不直接手动修改文件名:无法确保相关被引用的文件都改名了。但是使用IDEA改名的话,IDEA会帮我们修改其他的关联此文件名的代码

三、Web服务器

  1. 什么是Web服务器
    • 作用:Web服务器就是对HTTP协议进行封装,使程序员不用自己写代码区解析HTTP协议规则,可以让Web开发更加便捷
    • 其他名称:Web服务器也被称为WWW服务器、HTTP服务器,主要用来提供网上信息浏览服务
    • 常见的Web服务器:Apache、Nginx、IIS、Tomcat、Jboss等
  2. 关于HTTP协议:HTTP客户端和HTTP服务器之间交互数据的格式

四、根据HTTP状态码解决bug

4.1 404

  1. 问题:表示用户访问的资源不存在
  2. 原因
    • 路径写错了
    • 注解拼写错误
      在这里插入图片描述

4.2 500

  1. 问题:服务器代码出问题了
  2. 解决方法:去服务器查看日志
  3. 查看错误日志的方法:从下往上一段一段查看,段落内从上往下看

五、Spring VS Spring Boot VS Spring Web MVC

对于一个项目到底是那种类型,并不是那种“三选一”,有明显边界的关系,而是“即是……也是……”的关系

5.1 Spring

  1. 概念:是一个框架,可以简化Java开发
    • Spring 在概念上指的是“一个叫Spring的框架”,即【spring framework】
    • 在企业上说的 Spring 通常指【Spring全家桶】

5.2 Spring Boot

  1. 概念:基于Spring的一个框架,为了简化Spring项目而诞生的
    前面提到Spring是【Spring framewor】框架,这是Spring的核心。但随着技术的不断发展,Spring相对而言还是比较复杂了,所以我们又将这个框架简化成一个框架,取名为【Spring Boot】
  2. 为什么Spring Boot可以帮助我们更好地开发项目
    • 因为它集成了Maven,可以通过Maven引入一些依赖,如Spring Web、Mysql Driver,这些依赖就是相当于一个个功能,依赖内置了功能的实现
    • Spring Boot 只是将他们放在一起,以便我们的使用。

5.3 Spring Web MVC

Spring Web

  1. 什么是Spring Web:可以使用 Spring去搭建一个网站
    在这里插入图片描述

MVC

  1. 概念:Model View Controller 的缩写,把一个项目按照功能分成了【模型】、【视图】、【控制器】三个部分,是一种工程架构的思想
    在这里插入图片描述

Spring MVC

  1. 概念:Spring 实现了MVC思想,这被称为“Spring MVC”。当然,Spring在实现过程中,也对其作出了一些小改动。

在这里插入图片描述

  1. Spring Web MVC?:因为 Spring MVC对项目划分主要是用来开发网站,所以又叫【Spring Web MVC】
  2. 关于引入问题:Spring Web MVC 是基于Servlet API构建的原始Web框架,从一开始就包含在Spring框架中。是Spring其中的一个模块,由 pom.xml 引入依赖管理
<!-- Spring MVC 项目的依赖 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

相关文章:

创建一个Spring Boot项目

文章目录 一、如何创建一个Spring Boot项目1.1 项目创建&#xff1a;专业版 or 社区版 or 网站创建1.2 数据配置1.3 项目启动1.4 代码编写 二、Spring Boot 项目文件介绍三、Web服务器四、根据HTTP状态码解决bug4.1 4044.2 500 五、Spring VS Spring Boot VS Spring Web MVC5.1…...

ansible -playbook运维工具、语法、数据结构、命令用法、触发器、角色

目录 配置文件 基本语法规则&#xff1a; YAML支持的数据结构 playbook核心元素 ansible-playbook用法&#xff1a; 触发器 特点&#xff1a; 角色&#xff1a; 习题&#xff1a; 配置文件 playbook配置文件使用yaml语法&#xff0c;YAML 是一门标记性语言,专门用来写配…...

web前端之sass中的颜色函数、active按钮激活、hover鼠标悬浮、disabled禁用、scss循环、css

MENU 效果图htmlsassscss编译后的css页面css 效果图 注意查看蓝色按钮。 html <div class"box"><button class"btn type_1">按钮</button><button class"btn type_2">按钮</button><button class"btn ty…...

交通地理信息系统实习教程(二)

这篇文章服务于GIS背景用户以及有志于GIS的朋友 操作源数据位置&#xff1a;【免费】交通地理信息系统实习二源数据资源-CSDN文库 软件安装包位置&#xff1a;【免费】TransCad-交通地理信息系统软件资源-CSDN文库 一、最短路径分析 1.1软件启动说明 这里需要给出一个必要的…...

Shell脚本——批量清理Kubernetes集群中Evicted状态的pod

测试环境有一台宿主机出现了异常&#xff0c;大量的异常日志导致宿主机的磁盘使用率超过了85%&#xff0c;触发了上面的pod驱离策略&#xff0c;该宿主机上的的pod处于Evicted状态。在清理了磁盘之后&#xff0c;得手动处理掉这些Evicted状态的pod。 #!/bin/bash# 获取当前状态…...

(深度估计学习)Win11复现DepthFM

目录 1. 系统配置2. 拉取代码&#xff0c;配置环境3.开始深度预测4.运行结果 论文链接&#xff1a;https://depthfm.github.io/ 讲解链接&#xff1a;https://www.php.cn/faq/734404.html 1. 系统配置 本人系统&#xff1a;Win11 CUDA12.2 python3.11.5 这里附上几个CUDA安装链…...

cocos creator 帧率60 不生效meta50 能刷新到90

环境&#xff1a; cocos creator 2.4.3 华为meta 50 背景&#xff1a; 小游戏 需要在update 里取帧率 发现跟时间对不上 游戏设置60帧 手机上显示 90帧 cc.game.setFrameRate(30) 显示 30帧 cc.game.setFrameRate(60) 显示 90帧 结论&#xff1a; 对于老版本的cocos creator …...

探讨 cs2019 c++ 的STL 库中的模板 conjunction 与 disjunction

&#xff08;1&#xff09;在 STL 库源码中这俩模板经常出现&#xff0c;用来给源码编译中的条件选择&#xff0c;模板的版本选择等提供依据。先给出其定义&#xff1a; 以及&#xff1a; 可以得出结论&#xff1a; conj 是为了查找逻辑布尔型模板参数中的第一个 false &#x…...

【核弹】我的第一款IDEA插件

SuperHotSwap 插件名称叫做&#xff1a;SuperHotSwap&#xff08;超级热更新&#xff09; 开发初心&#xff1a;旨在做出一款最便捷的IDEA热更新插件&#xff0c;减少用户操作步骤&#xff0c;提供零配置的可视化操作更新。 为什么要写这个插件&#xff1a; 每次改一下Mappe…...

【工作篇】软件工程师的知识基础(持续更新)

目录 1. linux 知识篇 1. linux 知识篇 1. Linux API 是什么 Linux API 是指 Linux 操作系统 提供的应用程序接口&#xff0c;用于与操作系统进行交互。它包含了一系列的函数、系统调用、库函数和数据结构&#xff0c;用于实现各种系统级的操作&#xff0c;如文件操作、进程…...

知识付费系统开源方案,教育机构如何利用朋友圈做转介绍?

招生成本高&#xff0c;效果差让许多教育机构头疼不已。对于教育机构来说通过转介绍招生是一个非常有效的途径&#xff0c;那么教育机构如何利用朋友圈做转介绍呢?今天小编就来和大家分享一下。 利用朋友圈做转介绍&#xff0c;主要是通过做活动&#xff0c;来完成增加粉丝、扩…...

c++20 std::reinterpret_cast、std::bit_cast、std::static_cast

std::reinterpret_cast 类型不相关的转换&#xff0c;不安全例如转为&&#xff0c;不支持&#xff0c;要求sizeof相同&#xff1a; uint32_t n32 12345678;//0x00bc614e uint32_t* ptr reinterpret_cast<uint32_t*>(n32);//0x00bc614e uint32_t& ref reinter…...

PHP单独项目启动演示

文章目录 phpstudy得到文件打开phpStudy.exe运行项目 Apache运行后又自动停止 phpstudy 得到文件 一般我们会得到这么一个项目文件&#xff0c;如果外层有“中文路径”&#xff0c;请剪切此内容作为项目根目录即可 打开phpStudy.exe 因为我又正常的编程环境和mysql&#x…...

vscode 通过ssh 远程执行ipynb +可以切换conda env

主要是保证几个点 远程服务器python 环境没问题 conda这些也都有的ssh的账户 是有conda权限的没有免密就输入密码 免密教程就是最基本的那种 公钥copy过去就行了vscode 那几个插件都要装好 开始操作 首先 vscode 点击左侧工具栏中的扩展&#xff0c;搜索“ssh”&#xff0c;…...

ASP.NET银行大厅自助信息系统的开发与实现

摘 要 本毕业设计在基于银行业务大厅现有业务的基础上&#xff0c;针对自助银行的概念和其独有特点&#xff0c;通过.NETSQL技术&#xff0c;开发一个简单的银行大厅自助信息系统&#xff0c;完成一些自助银行的业务需求如帐户信息查询、帐户挂失、自助交费、留言、新闻查询…...

学习Vue3中reactive

学习Vue3中reactive 一、前言1、响应式对象2、对象属性的访问3、嵌套响应式对象4、避免直接修改响应式对象5、ref vs reactive 一、前言 在 Vue 3 中&#xff0c;reactive 是一个用于创建响应式对象的函数。响应式对象是 Vue 3 中数据驱动视图的核心&#xff0c;它们的属性的变…...

【Transformer-BEV编码(10)】CVPR2021 PYVA 第一个明确提到 cross-attention decoder可用于视图转BEV

论文信息 论文名&#xff1a;Projecting Your View Attentively: Monocular Road Scene Layout Estimation via Cross-view Transformation 中文&#xff1a;通过交叉视图变换&#xff08;crossview transform module&#xff09;估计单目道路场景布局 数据集&#xff1a;KITT…...

nestJs中跨库查询

app.module.ts中配置 模块的module中 注意实体类在写的时候和数据库中的表名一样 service中使用一下...

Java编程思想

面向对象编程(OOP)-CSDN博客 面向对象(OOP)的主要特点-CSDN博客 接口(Interface)和抽象类(Abstract Class)编程思想-CSDN博客 接口(Interface)和抽象类(Abstract Class)区别-CSDN博客 抽象类(Abstract Class)-CSDN博客 普通类和抽象类-CSDN博客 内部类编程思想-CSDN博客 …...

数组(Java)

数组 数组是相同类型元素的集合。 数组的定义和使用 数组的创建 数组名又叫引用变量&#xff0c;简称引用 下面代码段中new表示创建新的对象 T[ ] 数组名 new T[ N ];//数组名又叫引用变量&#xff0c;简称变量 //T&#xff1a;表示数组中存放元素的类型 //T[]&#xf…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)

一、OpenBCI_GUI 项目概述 &#xff08;一&#xff09;项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台&#xff0c;其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言&#xff0c;首次接触 OpenBCI 设备时&#xff0c;往…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术&#xff0c;通过密码学、共识机制和智能合约等核心组件&#xff0c;实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点&#xff1a;数据存储在网络中的多个节点&#xff08;计算机&#xff09;&#xff0c;而非…...