学习地址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,依赖库就下载好了。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.13</version>
</dependency>
配置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;
}
}
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)