【瑞吉外卖】001 -- 项目介绍与环境搭建

news2025/2/28 13:21:08

本文章为对 黑马程序员Java项目实战《瑞吉外卖》的学习记录

项目效果展示

目录

一、软件开发整体介绍

1、软件开发流程

2、角色分工

3、软件环境

二、瑞吉外卖项目介绍

1、项目介绍

2、产品原型展示

3、技术选型

4、功能架构

5、角色

三、开发环境搭建

1、数据库环境搭建

2、maven项目搭建


一、软件开发整体介绍

1、软件开发流程

需求分析 -> 设计 -> 编码 -> 测试 -> 上线运维

2、角色分工

项目经理(PL)、产品经理(PM)、UI设计师、架构师、开发工程师、测试工程师、运维工程师

3、软件环境

开发环境(development)、测试环境(testing)、生产环境(production)

二、瑞吉外卖项目介绍

1、项目介绍

页面展示:(管理后台)

页面展示:(移动端应用界面)

2、产品原型展示

前端产品原型:

管理端产品原型:

用户端产品原型:

3、技术选型

4、功能架构

主要分为两部分,前台(用户)和后台(管理者)

5、角色

后台系统管理员、后台系统普通员工、C端用户

三、开发环境搭建

1、数据库环境搭建

Ⅰ、创建数据库:

Ⅱ、导入表结构:

Ⅲ、数据表说明:

2、maven项目搭建

具体创建步骤:

Ⅰ、创建一个 Maven 项目:

- 检查maven仓库配置:

- 检查 JDK 配置:

Ⅱ、导入 pom.xml 文件:

Ⅲ、导入 application.yml 配置文件:

Ⅳ、编写启动类:(com.itheima.reggie

运行启动:

后续:

Ⅴ、导入前端静态页面:

Note:但由于在默认情况下,静态资源一般是放在 static\ public \ templates,如果不将前端资源存放在以上目录中,那么我们在启动项目,使用 Tomcat 服务器时也将访问不到这些资源。

Solution:我们可以通过一个配置类的方法来解决这种 资源映射 的问题。

示例:创建config类(MyWebMvcConfig

这段代码意思就配置一个拦截器, 如果访问路径是 addResourceHandler 中的 filepath 这个路径 那么就 映射到访问本地的 addResourceLocations 的参数的这个路径上,这样就可以让别人访问服务器的本地文件了,比如本地图片或者本地音乐视频什么的。

Ⅵ、编写配置类(WebMvcConfig),来实现指定静态资源映射:

Note:在 SpringBoot 中自定义静态资源位置和映射

参考资料:Spring Boot 中的静态资源到底要放在哪里?

在 Spring Boot 中,默认情况下,一共有5个位置可以放静态资源,五个路径分别是如下5个:

  • classpath:/META-INF/resources/
  • classpath:/resources/
  • classpath:/static/
  • classpath:/public/
  • /

前四个目录好理解,分别对应了resources目录下不同的目录,第5个 / 是啥意思呢?我们知道,在 Spring Boot 项目中,默认是没有 webapp 这个目录的,当然我们也可以自己添加(例如在需要使用JSP的时候),这里第5个 / 其实就是表示 webapp 目录中的静态资源也不被拦截。如果同一个文件分别出现在五个目录下,那么优先级也是按照上面列出的顺序。

而 SpringBoot 在配置文件中定义的方式比较简单,如下:

第一种方式:(application.properties)

spring.resources.static-locations=classpath:/

spring.mvc.static-path-pattern=/**

第一行配置表示定义资源位置,第二行配置表示定义请求 URL 规则。

以上文的配置为例,如果我们这样定义了,表示可以将静态资源放在 resources 目录下的任意地方,我们访问的时候当然也需要写完整的路径,例如在 resources/static目录下有一张名为1.png 的图片,那么访问路径就是 http://localhost:8080/static/1.png

当然,在Spring Boot中我们也可以通过 Java代码来自定义,方式和上面的配置类形式相同:

第二种方式:Java配置类(config)

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

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

相关文章

matlab升余弦滤波器comm.RaisedCosineTransmitFilter用法

RaisedCosineTransmitFilter是一个MATLAB通信工具箱中的函数,用于上采样和滤波输入信号。它可以使用正常的升余弦FIR滤波器或平方根升余弦FIR滤波器。通过使用升余弦FIR插值信号来应用脉冲整形滤波器。系统对通过使用升余弦有限脉冲响应(FIR)滤波器对输入信号进行插…

基于libevent实现调度器

一、调度器 1、调度器要解决的问题 1)事件保序 2)实现异步接口 2、调度器实现原理 调度器主要由下面的几个部件构成,如下: 2.1、Job 功能:保存回调及自定义参数 2.2、JobDescriptor 功能:1)创建…

从编译角度看c和c++混合编译

往期地址: 操作系统系列一 —— 操作系统概述操作系统系列二 —— 进程操作系统系列三 —— 编译与链接关系操作系统系列四 —— 栈与函数调用关系操作系统系列五——目标文件详解操作系统系列六 —— 详细解释【静态链接】 本期主题: c和c混合编译 C和…

【蓝桥杯】计算指定日期为当年第几天

文章目录前言题目分析算法难度实战1、创建算法2、创建测试用例3、测试结果总结前言 蓝桥杯全国软件和信息技术专业人才大赛由工业和信息化部人才交流中心主办,每年参赛人数超过30000人。蓝桥杯大赛作为国内领先的全国性 IT 学习赛事,持续有力支撑综合测评、奖学金评…

Web前端开发:HTML、CSS

一. 前端开发介绍 在介绍Web网站工作流程的时候提到,前端开发,主要的职责就是将数据以好看的样式呈现出来,说白了,就是开发网页程序,如下图所示:1. 网页有哪些部分组成 ? 文字、图片、音频、视频、超链接…

车企跨界背后,智能手机进入新增长时代

2022年中国智能手机销量首次跌破了3亿部大关,创下了十年来的最低水平。与此同时,以新能源车和XR为代表的新形态终端日渐成为新宠。在行业内外部多重因素影响之下,“唱衰”智能手机的声音也在甚嚣尘上,甚至有不少人认为智能机已进入…

笔记本电脑开不了机?3种解决方法

案例:笔记本电脑开不了机怎么办? 【我的笔记本电脑一直用得好好的,今天突然开不了机,尝试按了开机键很多次也没有解决。有人遇到过同样的问题吗?有没有解决的方法!】 在日常生活中,我们经常会…

Vulnhub靶场DC1-2练习

目录0x00 准备0x01 信息收集0x02 漏洞利用与攻击0x03 思路总结0x00 准备 下载连接:https://download.vulnhub.com/dc/DC-2.zip 介绍:Just like with DC-1, there are five flags including the final flag.Please note that you will need to set the …

看完这篇文章你就彻底懂啦{保姆级讲解}-----(I.MX6U驱动LED灯《使用汇编语言编写》) 2023.4.17

目录前言STM32 知识回顾完整汇编代码最终编译验证结束语前言 首先我们在开发stm32的时候驱动LED灯会有两种方式,分别是寄存器和库函数版本。因为在实际的开发过程中,我们更愿意更习惯用库函数版本来驱动各种外设,但是对于底层的寄存器调用和…

Linux宝塔安装msyql服务,默认密码,允许远程登录问题解决

一、首先我在宝塔安装mysql服务是5.7 1.1MySQL数据库5.6之前(不包括)默认密码为空,用户不用输入密码,直接回车登陆 mysql -uroot -p password:(空) 1.2.MySQL数据库5.6之后(包括)默认密码是MySQL数据库随机…

Mybatis手动配置ORM,不用自动ORM等操作

一、解决mapper.xml存放在resources以外路径中的读取问题 在pom.xml文件最后追加< build >标签&#xff0c;以便可以将xml文件复制到classes中&#xff0c;并在程序运行时正确读取。 <build><!-- 如果不添加此节点src/main/java目录下的所有配置文件都会被漏掉…

【Android Audio】TimeCheck机制

TimeCheck机制&#xff08;Android R/S&#xff09; TimeCheck.cpp TimeCheck.h frameworks/av/media/utils/TimeCheck.cpp TimeCheck守护线程的作用&#xff1a; 当audioserver中IAudioFlinger&#xff0c;IAudioPolicyService&#xff0c;IEffect中的每一个binder函数调用时…

Web 攻防之业务安全:Callback自定义测试(触发XSS漏洞)

Web 攻防之业务安全&#xff1a;Callback自定义测试 业务安全是指保护业务系统免受安全威胁的措施或手段。广义的业务安全应包括业务运行的软硬件平台&#xff08;操作系统、数据库&#xff0c;中间件等&#xff09;、业务系统自身&#xff08;软件或设备&#xff09;、业务所提…

学习C语言十天了,我实现了仿真自由落体小球『C/C++图形库EasyX』

文章目录&#x1f490;专栏导读文章导读准备工作一、显示一个静止的小球二、显示多个小球使用#define美化代码三、小球下落动画四、利用while循环实现小球下落五、利用if语句实现小球重复下落六、实现小球落地反弹七、实现小球加速下落&#x1f490;专栏导读 &#x1f338;作者…

剪枝与重参第七课:YOLOv8剪枝

目录YOLOv8剪枝前言1.Overview2.Pretrain(option)3.Constrained Training4.Prune4.1 检查BN层的bias4.2 设置阈值和剪枝率4.3 最小剪枝Conv单元的TopConv4.4 最小剪枝Conv单元的BottomConv4.5 Seq剪枝4.6 Detect-FPN剪枝4.7 完整示例代码5.YOLOv8剪枝总结总结YOLOv8剪枝 前言 …

【三十天精通Vue 3】第八天 Vue 3 生命周期钩子详解

✅创作者&#xff1a;陈书予 &#x1f389;个人主页&#xff1a;陈书予的个人主页 &#x1f341;陈书予的个人社区&#xff0c;欢迎你的加入: 陈书予的社区 &#x1f31f;专栏地址: 三十天精通 Vue 3 文章目录引言一、Vue 3 生命周期钩子概述1.1 生命周期钩子的简介1.2 生命周…

mulesoft MCIA 破釜沉舟备考 2023.04.14.11

mulesoft MCIA 破釜沉舟备考 2023.04.14.111. To implement predictive maintenance on its machinery equipment, ACME Tractors has installed thousands of IoT sensors that will send data for each machinery asset as sequences of JMS messages, in near real-time, to…

惠普Probook455电脑开机突然卡住无法进入桌面

惠普Probook455电脑开机突然卡住无法进入桌面解决方法分享。最近有用户使用的惠普Probook455电脑在开机的时候&#xff0c;电脑一直卡在开机的界面上&#xff0c;无法进入到系统中。无论是重启还是安全模式都无法解决问题。那么遇到这个情况怎么去进行问题的解决&#xff0c;来…

C++---状态压缩dp---炮兵阵地(每日一道算法2023.4.16)

注意事项&#xff1a; 本题为"状态压缩dp—蒙德里安的梦想"和"状态压缩dp—小国王"和"状态压缩dp—玉米田"的近似题&#xff0c;建议先阅读这三篇文章并理解。 题目&#xff1a; 司令部的将军们打算在 NM 的网格地图上部署他们的炮兵部队。 一个…

GoogleTest+VS code编译和编写简单测试用例

目录前言一、安装gtest二、 编译gtest与运行单元测试第一种编译方式第二种编译方式前言 在B站看了非常多Gtest的教学视频&#xff0c;CSDN上gtest博客也特别多&#xff0c;但是都非常陈旧或者根本不是用vscode。本篇目的在于&#xff0c;说明如何在vscode上编写简单单元测试。…