从零开始,手把手教你搭建Spring Boot后台工程并说明

2023-11-19


前言

最近这段时间在社交软件上,看到很多学生党求助,比如这个项目用到了什么框架,为啥这里飘红,那里报错之类的,原来是期末到了。懂得都懂,大学时候好多作业来路奇奇怪怪的,不足为奇,但不管怎样,学会才是最重要的,反正今天从0开始,给大家搭建一个springboot后台工程吧


一、JDK

一切的基础,至于版本的话,尽管现在到了23,但至今业界数量最多的仍然是jdk8,没什么好说的,我上传了个windows的jdk8安装版,可以直接解压后,点击安装:jdk8-windows版本下载

二、开发软件

目前对java开发来说,一般的开发软件无非是MyEclipse 和 Idea,MyEclipse 界面如下
在这里插入图片描述
而Idea如下:
在这里插入图片描述
两者都很常见。myEclipse 免费,适合初学者,我看很多学生用的也是这个。但就我目前来说,更习惯使用Idea,大部分从业者用的也是这个,Idea的社区版免费,专业版是收费的,其官网如下:IDEA下载

PS:如果你想用专业版,但又觉得贵,网上有很多方法或可以帮上你的忙。有此想法的,这边建议使用2021.2.2版本,考虑无限试用30天的思路,本文不再做宣传

三、项目管理

开发者必须明白,不可能所有的功能,都由开发者自己来写。很多功能市面上都已经有人写好且开源出来了,所以现在我们可以直接拿过来使用,包括spring等等框架也是一样的道理。所以一般项目中会引入许多包,包之间又会相互引用,如果不分析管理,很快就成一团乱麻了,所以管理软件是必须的,这里肯定还是推maven,包也给你们准备好了:maven3.6.3

1.maven安装

下载完,解压到任一目录下,如图
在这里插入图片描述
但是因为maven不是执行安装的,所以还需要手动弄一点环境配置,右键“此电脑”,选择属性
在这里插入图片描述
选择“高级系统设置”
在这里插入图片描述
打开后,点击环境变量
在这里插入图片描述

因为一般机器都是自己一个人在使用,所以直接配置系统级别的环境变量即可,点击系统变量里的
“Path”行,进行编辑,然后为其新建一个值,值自然就是我们上面的maven解压路径,注意要到这里的路径要写到\bin
在这里插入图片描述
点击“确定”后关闭。此时已经配置完毕了,接下来我们看看生效了没
键盘同时按住Windows + r,弹出运行界面。也可以右击“开始”,点击“运行”,弹出界面,输入cmd打开命令提示符

在这里插入图片描述
输入如下命令,即可查看安装的maven版本

mvn -version

在这里插入图片描述
如果出现上述提示,说明配置对了。如果出现什么命令不存在之类的,说明配置有问题

2.连接至仓库

maven安装成功只是第一步,到这里,你只是装了个软件,然而maven是要负责给你引入各种包的,所以其必须是联网,连接到公网仓库的。当然,由于内地访问外网普遍极慢,我们可以连接至阿里云的镜像仓库来使用。另外,我们本地也需要建个目录,来用作临时仓库

因此可以建个如下的目录, 其中setting.xml我也给你们准备好了,下载粘贴即可:Maven配置文件-setting.xml

在这里插入图片描述

3.开发软件配置

因为我们几乎不直接使用maven的命令,都是在开发软件,如上面的IDEA里,使用可视化的按钮操作,所以需要为开发软件配置下maven的信息(其实这里可以在建立工程以后再来操作,你可以先执行第四大步——建立工程

点击 File --> Settings
在这里插入图片描述

搜索到maven,并进行配置,主要是最后两行,需要勾选覆盖,把我们刚刚搞的路径和设置文件给它填上,然后点击右下角的Apply ,然后点击OK结束配置

在这里插入图片描述

四、建立工程

IDEA的第一次打开应该是此界面,假设你现在没有工程,那你肯定是点击“新建工程” - New Project了
在这里插入图片描述

1. Spring initializr方式建立

再出现的选项中,选择Spring initializr,这个是IDEA为了帮我们快速创建Spring项目而加入的。其实选择上面的Maven也是一样的,最后都能建立起一个maven项目;

填上项目的名称和一些项目属性,然后 SDK 和 java 都选择java8版本,打包方式为Jar,点击Next
在这里插入图片描述

这里的SpringBoot版本只会显示当前官方仍在支持的版本,我们尽量这里选的要低一点,高的话,可能不再支持JDK8了。此处使用了2.7.12。然后搜索并勾选 spring-web 和 mybatis ,还有mysql驱动 这三个组件,点击Finish

在这里插入图片描述

经过一段时间的读条后,我们就能看到项目了,注意,此处,如果你在Idea里没有完成maven的配置,在红框处可能会有错误,此时无妨,按照上面 三、3。开发软件配置 配置后,再重启Idea即可

在这里插入图片描述

点开后可能还需要稍微修改下POM文件,主要是关注下mysql驱动的版本和类型,直至标红消失为止

在这里插入图片描述

2. 简易的Demo

薛微的花了几分钟,简易构建了下框架,确切的说是往里面填了三部分的内容,最后如下图
在这里插入图片描述
我们将在下面详细的探讨这些部分的作用

3. Demo的代码层级解析

Demo的代码部分其实就是在工程包下,项目创建时,其自带了个SeeUApplication ,这个类就是整个springboot的启动器,十分重要。我们写的则是业务代码,同样也在工程包com.example.seeu下,别写到其他地方去了。

在这里插入图片描述
一般代码层级就三层

  1. Controller 控制器层:来自外界的请求,会进入其中,并且根据请求的url来找到哪个类的哪个方法来处理该请求,把请求的意图拆分成各个功能,再调用各自功能模块
  2. Service 服务层:业务逻辑的核心,也即上面所谓的功能模块,承上启下
  3. Mapper 映射层: 最底层,针对需要用到数据库的地方,负责数据库的增删改查
    在这里插入图片描述

解释:

  • @Controller注解来自Spring框架本身 ,作用是将这个放入容器中。需要注意的是,一般情况下,该类及该类的方法上都有@RequestMapping 注解,该注解里面的值就是用来和url匹配的。
  • @Service注解来自Spring框架本身,作用和@Controller是一样的将这个放入容器中(注意不是接口,即@service不应该标注在ProductService上,而是标注在ProductServiceImpl上),之所以分成两个注解,主要还是逻辑上让开发者能清晰分层。
  • @Mapper注解是由myBatis提供的,其作用也是与spring框架结合,将该接口(的代理类)放入容器中

4. Mapper资源解释

除了代码,我们还在resource目录下放置了个mapper目录,resource指的就是项目资源,是能够被默认加载的,里面放置的主要是工程的配置,一般就是以xml、properties、yml等结尾的文件。如果你想加载其他位置的配置,需要额外导入。
在这里插入图片描述
这里的mapper放置的就是对应的sql,和我们在代码位置里mapper写的文件是一一对应的。需要特别注意的是,这里的sql文件里有个命名空间,要写上代码里mapper文件的全路径,不然spring无法把代码和sql文件关联起来。
在这里插入图片描述

5. 项目配置

上面的都是代码和资源,真正的配置我们现在来看,我们在IDEA创建工程时,其实它自动给我们建了个配置文件,名为application.properties,里面是空的。但我个人更喜欢yml的形式,所以加了个application.yml文件作为配置文件,内容如下:

在这里插入图片描述

我们需要知道,不管是yml,还是properties用处都是一样的,两种文件格式spring也都能识别并解析。只是文件里面的写法不一样,所以根据个人习惯选用

五、安装数据库及数据库工具

其实到现在为止,项目已经可以启动了,但是你真的用起来,走到数据库那一步,是会报错的,因为现在配置数据库,但却没有安装数据库,所以现在需要安装一个Mysql数据库

数据库我也给你准备好了 一个mysql8.0的库,这是windows在线安装的,可以一直点下一步 Windows版mysql8.0

安装设置时 一定要注意记住root用户的密码,后面需要以此连接
在这里插入图片描述
默认安装完会自动启动的,你也可以通过上图的管理,来设置mysql8.0的自动或手动启动。也可以通过安装服务器的目录手动启动
在这里插入图片描述
安装好数据库,我们还需要去数据库创建库,创建表,还需要用到数据库管理软件,此处推荐navicat,包我也给了 navicat window 安装版 内附安装使用说明,安装成功后如下:

在这里插入图片描述

六、建库建表

打开刚安装并注册好的navicat ,新建连接,因为mysql服务器也在本地,所以可以直接使用127.0.0.1
在这里插入图片描述
在这里插入图片描述
新建数据库,数据库名称是最关键的,因为上面我们的工程用的名字就叫springtest,此处自然也要对应
在这里插入图片描述
在这里插入图片描述
建完库后继续建表
在这里插入图片描述
此处可以直接通过界面按钮,完成表的创建,就不赘述写建表语句了
在这里插入图片描述
在这里插入图片描述
当然此过程中,你可以直接在数据库预填一些数据,如
在这里插入图片描述

七、工程配置检查及启动

将此处的数据库连接配置检查一下,包括数据库ip,端口,数据库名,用户名及密码 和我们设置的是否一样,检查无误后启动项目。
在这里插入图片描述

IDEA提供了软件内启动spring工程的能力,只需要在启动类 SeeUApplication 上点一下即可
在这里插入图片描述
在这里插入图片描述
稍等一会后,就能看到控制台的输出了,因为我们这是极简的工程,所以启动较快,很多复杂项目启动一次就需要数分钟
在这里插入图片描述

在url里输入路径后,回车,就可以直接看到指定方法返回预埋的数据了
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从零开始,手把手教你搭建Spring Boot后台工程并说明 的相关文章

随机推荐

  • k8s学习(五)ReplicaSet的使用

    ReplicaSet ReplicaSet 的目的是维护一组在任何时候都处于运行状态的 Pod 副本的稳定集合 可确保指定数量的pod在任何设定的时间运行 因此 它通常用来保证给定数量的 完全相同的 Pod 的可用性 示例 1 nginx
  • C++基础之纯虚函数

    一 纯虚函数的定义 纯虚函数是一种特殊的虚函数 在许多情况下 在基类中不能对虚函数给出有意义的实现 而把它声明为纯虚函数 它的实现留给该基类的派生类去做 这就是纯虚函数的作用 C 中的纯虚函数 一般在函数名后使用 0作为此类函数的标志 前面
  • 4,引擎初始化--(5)初始化actor--6,生成PlayActor--(2)玩家登录--3,PostLogin()(学习资料来自于ue4游戏框架)

    一旦PlayerController生成出来 world关于玩家的网络的初始化工作全部完成 接下来 进行PostLogin 从而在玩家加入游戏时 能做一些设置工作 默认情况下 GameMode会为新生的PlayerController建立一
  • RFID技术在智慧图书馆盘点系统中的优势

    RFID射频识别及技术 作为一种新兴的非接触式的自动识别技术 其基本原理是电磁理论 因其操作便捷高效 无需人工干预 可在各种恶劣环境下 通过射频信号自动识别目标并获取相关数据 可识别高速运动中的物体并可同时识别多个标签 可以远距离识别 而不
  • _fseeki64在linux下的头文件,linux c 语言之--fseek(),fseeko(),fseeko64()讲解 (转载)

    转载 http blog csdn net lemoncyb article details 16841317 fseek 函数讲解 函数定义 int fseek FILE stream long offset int fromwhere
  • 查询目标服务器系统,查看目标服务器的操作系统

    查看目标服务器的操作系统 内容精选 换一换 云硬盘挂载至云服务器时 无法挂载 以下排查思路根据原因的出现概率进行排序 建议您从高频率原因往低频率原因排查 从而帮助您快速找到问题的原因 如果解决完某个可能原因仍未解决问题 请继续排查其他可能原
  • Linux-乌班图常用命令

    Linux提供了大量的命令 利用它可以有效地完成大量的工作 如磁盘操作 文件存取 目录操作 进程管理 文件权限设定等 所以 在Linux系统上工作离不开使用系统提供的命令 要想真正理解Linux系统 就必须从Linux命令学起 通过基础的命
  • Android框架体系架构的知识,值得收藏!

    一 概述 随着业务的发展 工程的逐渐增大与开发人员增多 很多工程都走向了模块化 组件化 插件化道路 来方便大家的合作开发与降低业务之间的耦合度 现在就和大家谈谈模块化的交互问题 首先看下模块化的几个优势 模块化的优势 结构清晰 业务独立 代
  • BUUCTF Web [极客大挑战 2019]Knife

    作者主页 士别三日wyx 此文章已录入专栏 网络攻防 持续更新热门靶场的通关教程 未知攻 焉知收 在一个个孤独的夜晚 你完成了几百个攻防实验 回过头来才发现 已经击败了百分之九十九的同期选手 极客大挑战 2019 Knife 一 题目简介
  • Android Context

    1 Context概念 Context 中文直译为 上下文 小学读语文的时候我们知道 有时候理解一个句子 需要看看上下文 这里上下文有时需要看看上下临接着的几段话就可以理解他的意思 有时候呢 我们需要把整篇文章都读取一遍才能知道他的意思 一
  • 【基于Leaflet和Canvas绘图的前端大量栅格数据渲染】

    1 需求 有包含30万坐标点的json文件 每个坐标点包含经度 纬度 行值 列值 数值 现需要根据数值分级进行不同颜色的显示 并在地图的正确位置进行渲染 最终效果如下 2 环境和工具 2 1 使用Edge Chrome 实测采用Chromi
  • 深度学习 -- Faster rcnn 算法流程详解

    经典论文 后续很多论文以此为基础 所以搞懂流程比较重要 中间如果 有写的不对 有问题或者看不懂的地方 还望指正 如果有了新的理解 我会持续更新 Faster Rcnn是目前学术上用的非常多的目标检测算法 这里来认真的梳理一遍该算法的流程 主
  • 2020年度全球人工智能十大事件

    当前 新一代人工智能技术在全球蓬勃兴起 迅猛发展 与大数据 区块链 5G等新技术相互融合 相互因应 为经济社会发展尤其是数字经济发展注入新动能 正在深刻改变社会生产生活方式 与此同时 如何在新技术变革浪潮中始终立于主动 实现人工智能等前沿科
  • Nerf(Representing Scenes as Neural Radiance Fields for View Synthesis)代码复现笔记

    前言 本文旨在帮助小白快速了解or学习复现出Nerf的代码 整体结构保持不变 不过会针对部分细节为了更好理解进行了修改 本文会相应更新讲解视频于B站 id 出门吃三碗饭 有问题到b站评论区留言 同步更新于 公众号 AI知识物语 B站讲解视频
  • 向ChatGPT高效提问模板

    我想请你XXXX 请问我应该如何向你提问才能得到最满意的答案 请提供全面 详细的建议 针对每一个建议请你提供具体的提问范例 注意这些范例都是关于如何向你提问获取做这件事的建议的 最后根据你所有的建议 再综合提供一个总的提问范例 注意这个范例
  • 车辆强制降速系统讨论

    近期发生了不少的汽车恶意撞人的事故 造成了严重的人员伤亡 如 江苏盐城警方通报轿车撞人事故致2死6伤 涉事司机已被控制 在当前的科技水平下 这样的事件是可以通过技术手段来避免的 这就是车辆强制降速系统 FRS 通过摄像头 雷达等传感器来判断
  • QQ个人文件夹保存位置无效

    必须写文章谴责QQ这种垃圾软件 B 了 dog 腾讯家的QQ真没几个好用的 之前是PC版QQ群文件跳转回来显示错误bug 之后是手机QQ看点等各种消息bug 现在隔了几年了还有 个人文件夹保存位置无效 根本没有改进 QQ个人文件夹保存位置无
  • $emit传递参数

    emit传递一个参数时 子组件代码 let data name 王五 age 50 this emit change data 父组件代码
  • python traceback安装_Fedora 25工作站:Anaconda在安装过程中抛出Traceback错误

    我正在尝试在联想Ideapad上安装Fedora 25 Workstation 使用具有20GB HDD空间的VMWare Player 2GB RAM 2个处理器核心 安装顺利到第2阶段 Anaconda试图创建用户 然后 它显示弹出错误
  • 从零开始,手把手教你搭建Spring Boot后台工程并说明

    文章目录 前言 一 JDK 二 开发软件 三 项目管理 1 maven安装 2 连接至仓库 3 开发软件配置 四 建立工程 1 Spring initializr方式建立 2 简易的Demo 3 Demo的代码层级解析 4 Mapper资源