01 微信点餐系统

项目设计

架构部署
数据库设计

环境搭建

  • jdk

  • nginx

  • mysql

  • redis

安装 jdk

openjdk 默认安装路径为 /usr/lib/jvm,然后设置环境变量:

安装 nginx

需要注意重启重加载的区别:

  • restart 重启 nginx 服务,重启会造成服务一瞬间的中断,如果配置文件出错会导致服务启动失败,那就是更长时间的服务中断。

  • reload 重新加载配置文件,nginx 服务不会中断,而且 reload 时会测试 conf 语法等,如果出错会 rollback 用上一次正确配置文件保持正常运行。

启动后访问 http://localhost/ 检测是否正常。安装完成后各个文件存放位置:

Linux 系统的配置文件一般放在 /etc,日志一般放在 /var/log,运行的程序一般放在 /usr/sbin 或者 /usr/bin

最后需要设置反代跨域:

安装 mysql

安装完成后各个文件存放位置:

安装 redis

日志 Logback

日志 = 日志门面(SLF4J) + 日志实现(Logback)。

使用方式一:

使用方式二,使用 Lombok 注解:

首先引入依赖:

添加 @Slf4j 注解:

日志配置方式:

  • application.yml

  • logback-spring.xml

application.yml 中进行简单配置:

但更推荐在 logback-spring.xml 中配置,可以更加细致地控制日志输出:

数据库与缓存

引入依赖:

配置 application.yml

打包部署

打包项目:

上传远程服务器:

启动:

Error

001 Table 'sell.hibernate_sequence' doesn't exist. could not read a hi value.

将主键生成策略修改为:

002 No default constructor for entity

进行列表查询,需要给 dataobject 添加无参的构造方法:

003 Could not autowire. No beans of 'ProductInfoServiceImpl' type found.

忘记给 service 实现类添加 @Service 注解。

004 Error creating bean with name 'entityManagerFactory' defined in class path resource.

没有给 dataobject 主键添加 @Id 注解:

005 No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type 'java.lang.Integer'.

对于 Integer、Long 类型的属性值,表单验证用的注解应该是用 @NotNull,不能用 @NotBlank 或者 @NotEmpty

最后更新于

这有帮助吗?