xiangpei
6 天以前 79864a9c065d32ecfc4530734cd01091de4a21e4
README.md
@@ -1,13 +1,24 @@
# 关于项目
# 1.关于项目
1. 该项目使用开源项目进行二开,仓库地址:https://github.com/lilishop?tab=repositories
2. 使用的版本是:4.4,对应的sql在:https://gitee.com/beijing_hongye_huicheng/docker/tags,下载对应版本,里面有sql
# 本地环境搭建---Docker
**如有不懂,最好参考官方文档**:[lilishop官方文档](https://docs.pickmall.cn/deploy/win/framework.html)
# 2.本地环境搭建---Docker
## es安装(windows):
```docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.9.3```
## ik分词器安装:
1. ik分词器版本必须和es版本保持一致
1. **ik分词器版本必须和es版本保持一致**
2. 下载地址:http://cdn-us-west-release.infinilabs.com/analysis-ik/stable/
@@ -34,3 +45,131 @@
3. docker run -d --name rmqbroker -p 10912:10912 -p 10911:10911 -p 10909:10909 -p 8080:8080 -p 8081:8081 -e "NAMESRV_ADDR=127.0.0.1:9876" -v C:\rocketmq-config\broker.conf:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf apache/rocketmq:4.8.0 sh mqbroker -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf
```
## mysql8安装
``````
docker run -d --name mysql8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8
``````
## redis安装
``````
docker run --name redis -p 6379:6379 -d redis:latest
``````
# 2.本地运行
## SQL
SQL文件位于项目根目录的sql目录,创建数据库:lilishop,导入该sql文件
![image-20250509152356149](https://xiangpeitop.oss-cn-chengdu.aliyuncs.com/blogimgs/image-20250509152356149.png)
## 项目结构说明
![image-20250509145018934](https://xiangpeitop.oss-cn-chengdu.aliyuncs.com/blogimgs/image-20250509145018934.png)
和正常的maven多模块项目唯一的不同之处就是:业务模块都可以单独运行,一个模块就是一个服务。
抛开这一点,就把它当作普通的maven多模块项目即可。(猜测是开发时作者考虑到后续微服务版本所以做了这样的拆分)
## 配置文件说明
每个独立的业务模块都有一个独有的配置文件,就很像微服务。
当你本地运行时却发现改模块内部的配置文件没有起效,这是因为SpringBoot加载配置文件优先级的问题。
开源作者在项目根目录下有个叫config的文件夹,里面有一个配置文件。改了模块内部不起作用就是因为config目录下的配置文件覆盖了模块内的配置文件(注意,不是文件覆盖,而是相同配置的地方会覆盖)。
SpringBoot的配置文件加载优先级:(高-----> 低)
1. 运行时通过 -Dspring.config.location 进行指定(在部署时经常使用)
2. jar包   当前目录/项目根目录  的config目录下
3. jar包内部打包好的配置文件
**所以在本地开发时,修改config目录下的配置文件,或者也可以删掉这个config目录**
## 新项目先install再运行
首先对maven父项目进行:clean、install
![image-20250509150455878](https://xiangpeitop.oss-cn-chengdu.aliyuncs.com/blogimgs/image-20250509150455878.png)
因为maven多模块项目会存在A模块引用B模块,B模块是你的代码包,并不存在于maven中央仓库。
install的目的就是把每个模块都安装到本地maven仓库,这样才能正常运行。
## 业务模块
![image-20250509150838234](https://xiangpeitop.oss-cn-chengdu.aliyuncs.com/blogimgs/image-20250509150838234.png)
idea会在这里列出哪些类加了启动类注解:@SpringBootApplication
列举出来的就是对应maven业务模块,除了AdminApplication可以不用运行,CommonApplication必须运行,其它的可根据具体调试开发哪个模块来决定是否运行,防止内存占用过高,而且每个模块在前端就对应一个前端项目,所以可以单独运行某个模块的。
- admin模块,springboot的服务监控,可以不要
- buyer-api模块:买家(用户)的所有api
- common-api模块:基础api服务,所以是必须要运行的模块
- im-api模块:im指的是即时通讯,这个是提供及时聊天的api服务
- manager-api模块:电商平台的api服务
- store-api模块:商家api服务
- consumer模块:rocketmq消费者服务
- framework模块:可以理解为系统基础模块,每个模块的实体类、mapper、service都写这里面。还有有一些配置、通用类、工具类。其它模块都会引用framework模块
# 系统账号
平台端:admin         123456
商家端:13011111111         111111
# 代码生成
公司git项目:code-gen
分支:lmk
运行该项目然后通过api调用:
POST http://127.0.0.1:9999/sys-table/generator
{
    "tableName": "lmk_video_tag", // 为哪张表生成代码
    "whichModule": "test",  // 生成的代码在哪个模块,建议不改,生成成功后项目目录下会有一个test文件夹,拷贝代码到本项目即可
    "tablePrefix": "lmk_",  // 表前缀
    "dataBase": "lilishop", // 数据库名称
    "author": "xp" // 作者
}
# xxl-job
仓库:lmk-xxl-job
启动:XxlJobAdminApplication后访问:http://127.0.0.1:9001/xxl-job-admin/
用户名:admin
密码:111111