本项目采用前后端分离的方式搭建,前端页面在ngix服务器上进行搭建和开发,后端页面采用springboot+redis+mybatis+tomcat进行开发。
具体资源可以去黑马视频链接下面寻找
一、数据库环境搭建
首先在本地环境下创建数据库,命名为reggie,其中总共含有11张表,表名称和功能如下所示:
序号 | 表名 | 说明 |
1 | employee | 员工表 |
2 | category | 菜品和套餐分类表 |
3 | dish | 菜品表 |
4 | setmeal | 套餐表 |
5 | user | 用户表(C端) |
6 | address_book | 地址表 |
7 | shopping_cart | 购物车表 |
8 | orders | 订单表 |
9 | setmeal_dish | 套餐菜品关系表 |
10 | dish_favor | 菜品口味表 |
11 | order_detial | 订单明细表 |
搭建方式:点击资料文件夹->day01->数据库->sky.sql执行就可以创建这十一张表。
二、前端环境的搭建
这个很简单
直接启动nginx服务器,因为前端页面已经写好,也不是我们java开发需要关注的点,所以直接拿来主义直接用就好了。
但需要注意的一点:nginx服务器的路径必须是全英文,不能出现中文,否则会报错
端口号为80,访问地址为http://localhost或者为http://localhost:80
三、后端环境的搭建
后端环境由三个子module组成:分别是sky_common、sky_pojo、sky_server三个module,这三个module又被一个父module包含sky_take_out。他们的功能和作用如下:
名称 | 功能 |
sky_take_out | 统一管理依赖版本,聚合子模块 |
sky_common | 公共类,例如工具类、异常类等 |
sky_pojo | 存放实体类,例如VO、DTO等 |
sky_server | 后端服务、配置文件、controller、service等 |
实体类中的VO代表View Object,DTO代表Data Transfer Object
3.1 moodule依赖
参考博客:IDEA SpringBoot多模块项目搭建详细过程
设置父module和子module之间的依赖关系(pom.xml),具体步骤如下:
1.父module的打包类型,在sky_take_out文件夹下的pom.xml中设置
<packaging>pom</packaging>
2.父包含子。表明另外三个module是子module(如果子module之间还具有依赖关系的话也可以这样注明)。在sky_take_out文件夹下的pom.xml中设置:
<modules>
<module>sky_common</module>
<module>sky_pojo</module>
<module>sky_server</module>
</modules>
3.子依赖父。那么子module同样要指明其parent:
<parent>
<groupId>com.sky</groupId>
<artifactId>sky_take_out</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
这个过程是比较耗时的,因为博主用的是spring boot 3.0的版本,和项目资源中的版本不一样,所以需要配置pom文件,并且搞定一些依赖的版本关系。如果你觉得配置依赖麻烦,可以用项目中的2.×.×的spring boot版本。
3.2 Maven项目环境的搭建
我们的APP建立在spring boot之上,所以需要从spring构建项目,我这里采用的是idea中的spring initializer进行快速启动,启动流程如下
3.2.1 spring boot快速启动
父工程的创建:
之后点击next,进入到下一个界面。
然后点击右小角的create创建project即可。以上是父工程的创建流程,子工程创建和父工程大同小异,子工程就是第二个选择界面中只选择spring web就好了。
3.2.2 配置pom.xml
父工程和子工程的pom区别在第三部分已经提到过了 ,可以回看第三部分。
具体的pom配置我就不展示了,在资料文件夹的day01后端初始工程中就有,直接复制就可以,如果你只想跑通带代码,那么不建议修改spring boot的版本。
3.2.3 配置工程结构
整体项目结构:
sky_common:
限于篇幅就不一个个都贴上去了,基本上和资料中的初始工程差不多。但需要注意的就是sky_server中的配置文件要修改为你本机的配置。
以下是我的一些配置,可以参考修改为你的配置
application.yml:
server:
port: 8080
spring:
profiles:
active: dev
main:
allow-circular-references: true
datasource:
driver-class-name: ${sky.datasource.driver-class-name}
url: jdbc:mysql://${sky.datasource.host}:${sky.datasource.port}/${sky.datasource.database}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
username: ${sky.datasource.username}
password: ${sky.datasource.password}
type: com.alibaba.druid.pool.DruidDataSource
springdoc:
swagger-ui:
path: /swagger-ui.html
tags-sorter: alpha
operations-sorter: alpha
api-docs:
path: /v3/api-docs
group-configs:
- group: 'default'
paths-to-match: '/**'
packages-to-scan: com.sky
knife4j:
enable: true
setting:
language: zh_cn
#mybatis:
# mapper-locations: classpath:mapper/*.xml
# type-aliases-package: com.sky.entity
# configuration:
# map-underscore-to-camel-case: true
logging:
level:
com:
sky:
mapper: debug
service: info
controller: info
sky:
jwt:
admin-secret-key: itcast
admin-ttl: 7200000
admin-token-name: token
application-dev.yml:
sky:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
host: localhost
port: 3306
database: sky_take_out
username: root
password: password
3.2.4启动项目
待上述配置完成后,先打开nginx服务器,然后运行后端maven工程便打开了项目,访问http://localhost就可以进入登录界面了。