学习地址1:https://pan.baidu.com/s/1qGqg_gdxT2yUf0ifiFUeYg 提取码: jgap 学习地址2:https://share.weiyun.com/Wjw3QpeQ 密码:gxrfcw
大家好,今天我将带着大家用Vue3+Pinia+Vite+TS来开发一款外卖app的项目,喜欢大家会喜欢。
随着外卖服务的普及和数字化的兴起,外卖系统的开发变得至关重要。要构建一个高效、安全、用户友好的外卖系统,需要运用多种关键技术。
首先,我们先选择合适的应用开发框架是外卖系统成功开发的第一步。诸如React、Angular、Vue等现代化的前端框架,以及Node.js、Ruby on Rails、Django等后端框架,能够提供稳定、快速、高效的开发环境。
另外,外卖系统处理大量数据,因此数据存储和数据库管理至关重要。使用可扩展的数据库系统,例如MySQL、PostgreSQL或NoSQL数据库(如MongoDB),以及有效的数据结构和管理技术,能够确保数据的安全、稳定和高效访问。
外卖配送涉及到实时的地理位置追踪和导航。整合地图服务(例如Google Maps、Mapbox)和GPS技术,能够实时监控送餐员的位置,为用户提供精确的送餐时间估计,并优化配送路线,提高配送效率。
接下来我们开始创建SpringBoot项目,创建项目的时候选择 Spring Initializr,填写好项目信息,把application.properties文件修改成application.yml。
然后我们开始配置Tomcat server: tomcat: uri-encoding: UTF-8 threads: max: 200 min-spare: 30 connection-timeout: 5000ms port: 8080 servlet: context-path: /emos-wx-api
配置MySQL数据源
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/emos?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: abc123456
initial-size: 8
max-active: 16
min-idle: 8
max-wait: 60000
test-while-idle: true
test-on-borrow: false
test-on-return: false
因为使用了阿里巴巴吧的Druid连接池,所以要在pom.xml文件中添加依赖,然后让Maven执行reload,依赖库就下载好了。
配置Redis数据源 spring: #这里省略MySQL配置信息 redis: database: 0 host: localhost port: 6379 password: abc123456 jedis: pool: max-active: 1000 max-wait: -1ms max-idle: 16 min-idle: 8 配置MongoDB数据源 spring: #这里省略MySQL配置信息 #这里省略Redis配置信息 data: mongodb: host: localhost port: 27017 database: emos authentication-database: admin username: admin password: abc123456 运行项目,检测配置 找到EmosWxApiApplication类,运行主方法,启动SpringBoot项目,然后观察控制台的输出,如果没有异常消息,说明以上的这些配置完全正确。如果出现了异常信息,需要你检查数据库是否都启动了,而且依赖库是否加载了,最后还要核对一下yml文件中的配置信息。
自定义异常类继承的父类,我没有选择Exception。因为Exception类型的异常,我们必须要手动显式处理,要么上抛,要么捕获。我希望我定义的异常采用既可以采用显式处理,也可以隐式处理,所以我选择继承RuntimeException这个父类。RuntimeException类型的异常可以被虚拟机隐式处理,这样就省去了我们很多手动处理异常的麻烦。
创建com.example.emos.wx.exception包 创建EmosException类 package com.example.emos.wx.exception; import lombok.Data; @Data public class EmosException extends RuntimeException{ private String msg; private int code = 500;
public EmosException(String msg) {
super(msg);
this.msg = msg;
}
public EmosException(String msg, Throwable e) {
super(msg, e);
this.msg = msg;
}
public EmosException(String msg, int code) {
super(msg);
this.msg = msg;
this.code = code;
}
public EmosException(String msg, int code, Throwable e) {
super(msg, e);
this.msg = msg;
this.code = code;
}
}