# project-server **Repository Path**: kangchenxi/project-server ## Basic Information - **Project Name**: project-server - **Description**: 企业ERP系统带基础功能,微服务项目Java服务端模板 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-05 - **Last Updated**: 2026-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 项目简介 ​ 这是一个企业级的后端服务框架,可以切换为单体/分布式开发,集成了常用的中间件和单点登录等功能。 - 本项目基于 [ruoyi-nbcio](https://gitee.com/nbacheng/ruoyi-nbcio) 进行二次开发,扩展分布式架构,增加前端组件、文档处理、定时任务、中间件支持。 - 可切换saas多租户模式或单用户模式 - 采用Springboot2+vue2框架,功能基本完成,流程已实现自定义业务关联,全部开源,个人与企业可免费使用。 - 项目自带ERP业务,用户、角色、部门、权限、流程等,且将用户分为管理端和用户端,其余业务可自行扩展。 - 管理端前端代码请查看 [project-admin](https://gitee.com/kangchenxi/project-admin) 仓库 ## 后端技术架构 - 基础框架:Spring Boot 2.5.6、SpringCloudAlibaba2020 - 分布式事务框架:Seata 1.5.2 - 持久层框架:Mybatis-plus 3.5.5 - 安全框架:Sa-Token 1.37.0 - 缓存框架:Redis - 日志打印:Logback - 分布式定时任务:XxlJob 2.3.1 - 数据检索:ElasticSearch 7.12 - 消息队列:RabbitMQ 3.10 - 数据存储:MongoDB - 流程引擎:Flowable 6.8 ## 前端技术架构 - 基础框架:Vue2 - UI框架:Ant Design、Element UI ## 开发环境 - 语言:Java 8 - IDE: IDEA、VsCode - 依赖管理:Maven - 数据库:MySQL 8 - 容器化:Docker、Docker-Compose ## 项目整体架构 ![](https://kcxbucket.oss-cn-shenzhen.aliyuncs.com/md/Snipaste_2025-10-08_13-34-07.png) ![](https://kcxbucket.oss-cn-shenzhen.aliyuncs.com/md/Snipaste_2025-10-08_15-00-55.png) ``` 程序端口(8888-8900): api-admin:8889 api-user:8888 common-generator:8896 file:8899 gateway:8897 job:8895,8900 service-middleware:8893 service-third:8892 sso-user:8898 task-consumer:8891 task-producer:8890 xxl-job-admin:8894 ``` ``` redis占用库: api-admin:1 api-user:1,5 file:1 job:1 service-middleware:2 service-third:3 task-consumer:4 task-producer:4 sso-user:5 xxl-job-admin:6 ``` ## 启动docker容器 先准备本地docker和docker-compose环境,在docker中运行必要的中间件,项目中已经编排好所需的容器,将下面目录复制一份到本地任意位置。然后先检查配置,修改seata的注册ip为本机ip ![](https://kcxbucket.oss-cn-shenzhen.aliyuncs.com/md/Snipaste_2025-10-08_14-06-32.png) ![](https://kcxbucket.oss-cn-shenzhen.aliyuncs.com/md/Snipaste_2025-10-08_14-13-27.png) 然后在命令行窗口运行docker-compose up -d xxx启动容器即可 首次运行需要先启动mysql容器,然后执行下一节导入mysql数据 修改nacos的配置文件 **z-release\docker\nacos\conf下的nacos数据库连接** ``` db.url.0=jdbc:mysql://project-mysql:3306/project-nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=19980805kcx ``` 启动nacos容器后在修改seata的数据库连接 ![](https://kcxbucket.oss-cn-shenzhen.aliyuncs.com/md/Snipaste_2025-10-08_14-38-24.png) ``` #修改为自己的 url: jdbc:mysql://172.18.160.1:3306/project-seata?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8&allowMultiQueries=true&autoReconnect=true user: root password: 19980805kcx ``` 必须启动的容器:project-mysql、project-redis、project-nacos、project-seata 启动中间件服务所需的容器:project-rabbitmq、project-elasticsearch、project-mongodb 全部容器启动后如图: ![](https://kcxbucket.oss-cn-shenzhen.aliyuncs.com/md/Snipaste_2025-10-08_14-10-45.png) ## 导入mysql数据 使用navicat等工具将mysql数据库导入启动的mysql容器中,数据库编码为utf8mb4,排序规则为utf8mb4_general_ci。 - project是程序业务数据库 - project-flow是flowable流程引擎框架数据库,请不要做任何修改 - project-nacos是nacos框架数据库,请不要做任何修改 - project-seata是seata框架数据库,请不要做任何修改 - project-xxl-job是xxl-job框架数据库,请不要做任何修改 ![](https://kcxbucket.oss-cn-shenzhen.aliyuncs.com/md/Snipaste_2025-10-08_14-25-02.png) ## 启动java服务 在maven配置中提供了3个环境的配置文件,可以自己切换和修改,对所有服务都生效。在多人协作开发时可以自己复制一份修改,如果共用同一nacos需要增加nacos命名空间,则需要同时修改这里的配置和**z-release\docker\seata\resources\application.yml**中seata所在的命名空间 ![](https://kcxbucket.oss-cn-shenzhen.aliyuncs.com/md/Snipaste_2025-10-08_14-46-15.png) 确认连接用户密码等无误后直接启动项目即可,启动成功控制台打印示例: ``` 2025-10-08 10:13:44.065 INFO [,,] 17800 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator' 2025-10-08 10:13:44.170 INFO [,,] 17800 --- [ main] io.undertow : starting server: Undertow - 2.2.12.Final 2025-10-08 10:13:44.175 INFO [,,] 17800 --- [ main] org.xnio : XNIO version 3.8.4.Final 2025-10-08 10:13:44.184 INFO [,,] 17800 --- [ main] org.xnio.nio : XNIO NIO Implementation Version 3.8.4.Final 2025-10-08 10:13:44.208 INFO [,,] 17800 --- [ main] org.jboss.threads : JBoss Threads version 3.1.0.Final 2025-10-08 10:13:44.239 INFO [,,] 17800 --- [ main] o.s.b.w.e.undertow.UndertowWebServer : Undertow started on port(s) 8890 (http) 2025-10-08 10:13:44.246 INFO [,,] 17800 --- [ main] c.a.c.n.registry.NacosServiceRegistry : nacos registry, SEATA_GROUP task-producer 172.21.80.1:8890 register finished 2025-10-08 10:13:44.464 INFO [,,] 17800 --- [ main] com.kcx.TaskProducerApplication : Started TaskProducerApplication in 7.618 seconds (JVM running for 8.22) (♥◠‿◠)ノ゙ 启动成功 ლ(´ڡ`ლ)゙ ---------------------------------------------------------- 外部访问网址: http://192.168.233.1:8890/ 本地访问网址: http://localhost:8890/ ``` ## 分布式能力 | 功能 | 是否提供 | 备注 | |---------------- | ----- | -------- | | 服务注册与发现Nacos | 是 | | | 服务调用Feign | 是 | | | 服务网关GateWay | 是 | | | 服务熔断与限流Sentinel | 是 | 需要自己下载sentinel-dashboard-1.8.6.jar部署对应的服务 | | 分布式事务Seata | 是 | 方法注解@GlobalTransactional(rollbackFor = Exception.class)生效 | | 分布式定时任务Xxl-Job | 是 | | | 分布式链路追踪 | 是 | 需要自己下载对应的服务 |