北冥星眸

智能客服SaaS平台(后端代码)

单体架构服务

具体架构信息请参考架构设计文档:
https://kdocs.cn/l/sf3SUPU11
[文件] 智能客服SaaS平台系统架构设计概要.docx

集成框架

spring-boot、mybatis、redis、netty、mysql

权限拦截

基于spring AOP的拦截器,拦截token和接口请求地址

在线接口文档

服务启动ip+端口(例如localhost:8080)
swagger2访问路径:ip:port/swagger-ui.html

离线接口文档

地址:https://www.kdocs.cn/p/67638393629?from=docs&source=docsWeb

mybatis generator使用

配置resources目录下的 generatorConfig.xml(具体配置参数请参考官方文档)
点击idea中的maven工具下的plugin:mybatis-generator:generate

数据库变更脚本

文件地址:resources/sql-script/sql.sql

服务打包

使用maven工具:mvn run install
使用idea编辑器:集成maven插件,点击install

本服务打包为jar包,配置文件可以放置在jar包之外

数据库版本处理

mysql5.7.5及以上版本实现了对功能依赖的检测。默认启用了ONLY_FULL_GROUP_BY SQL模式。在该模式下,我们使用GROUP BY查询时,出现在SELECT字段后面的只能是GROUP BY后面的分组字段,或使用聚合函数包裹着的字段,否则会报错如下信息:

Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'database.table.column' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

当使用ORDER BY查询时,不能使用SELECT DISTINCT去重查询。否则会报错如下信息:

Expression #1 of ORDER BY clause is not in SELECT list, references column 'database.table.column' which is not in SELECT list; this is incompatible with DISTINCT

解决方法 通过命令关闭ONLY_FULL_GROUP_BY SQL模式

set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

但该方法在重启Mysql服务后会失效,重启服务后会发现ONLY_FULL_GROUP_BY还是存在的。

通过修改mysql的配置文件关闭ONLY_FULL_GROUP_BY SQL模式

[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
上一篇:OCP 063中文考试题库(cuug内部资料)第39题


下一篇:齐博x1标签实例:标签设置取组图不存在就取内容中的图片