Paicoding
⭐️一款好用又强大的开源社区,基于 Spring Boot、MyBatis-Plus、MySQL、Redis、ElasticSearch、MongoDB、Docker、RabbitMQ 等主流技术栈,附详细教程,包括Java、Spring、MySQL、Redis、微服务&分布式、消息队列等核心知识点。学编程,就上技术派😁。
Install / Use
/learn @itwanger/PaicodingREADME
一、配套服务
- 技术派网址:https://paicoding.com
- 技术派教程:https://paicoding.com/column 目前已更新高并发手册、JVM 手册、Java 并发编程手册、二哥的 Java 进阶之路,以及技术派部分免费教程。我们的宗旨是:学编程,就上技术派😁
- 技术派管理端源码:paicoding-admin
- 技术派专属学习圈子:不走弯路,少采坑,附 120 篇技术派全套教程
- 派聪明AI助手:AI 时代,怎能掉队,欢迎体验 技术派的派聪明 AI 助手
- 码云仓库:https://gitee.com/itwanger/paicoding (国内访问速度更快)
二、项目介绍
项目演示
前台社区系统
- 项目仓库(GitHub):https://github.com/itwanger/paicoding
- 项目仓库(码云):https://gitee.com/itwanger/paicoding
- 项目演示地址:https://paicoding.com

Vue 版前后端分离版本
这个版本对技术派进行了二次开发,将用户端的前端 UI 使用 Vue3 重写,并且将后端升级到 Spring Boot 3 版本,喜欢 Vue3 或者 Spring Boot 3 版本的球友可以看看这个分支。
- 项目仓库(GitHub):https://github.com/itwanger/paicoding/tree/springboot3%26vue3
- 项目仓库(码云):https://gitee.com/itwanger/paicoding/tree/springboot3%26vue3
- 项目演示地址(球友小灰飞):https://www.xuyifei.site/

后台社区系统
- 项目仓库(GitHub):https://github.com/itwanger/paicoding-admin
- 项目仓库(码云):https://gitee.com/itwanger/paicoding-admin
- 项目演示地址:https://paicoding.com/admin-view

admin 端部署写在了 paicoding-admin 项目的 README.md 中,请注意查看⚠️。
代码展示

架构图
系统架构图

业务架构图

组织结构
paicoding
├── paicoding-api -- 定义一些通用的枚举、实体类,定义 DO\DTO\VO 等
├── paicoding-core -- 核心工具/组件相关模块,如工具包 util, 通用的组件都放在这个模块(以包路径对模块功能进行拆分,如搜索、缓存、推荐等)
├── paicoding-service -- 服务模块,业务相关的主要逻辑,DB 的操作都在这里
├── paicoding-ui -- HTML 前端资源(包括 JavaScript、CSS、Thymeleaf 等)
├── paicoding-web -- Web模块、HTTP入口、项目启动入口,包括权限身份校验、全局异常处理等
环境配置说明
资源配置都放在 paicoding-web 模块的资源路径下,通过maven的env进行环境选择切换
当前提供了四种开发环境
- resources-env/dev: 本地开发环境,也是默认环境
- resources-env/test: 测试环境
- resources-env/pre: 预发环境
- resources-env/prod: 生产环境
环境切换命令
# 如切换生产环境
mvn clean install -DskipTests=true -Pprod
配置文件说明
- resources
- application.yml: 主配置文件入口
- application-config.yml: 全局的站点信息配置文件
- logback-spring.xml: 日志打印相关配置文件
- liquibase: 由liquibase进行数据库表结构管理
- resources-env
- xxx/application-dal.yml: 定义数据库相关的配置信息
- xxx/application-image.yml: 定义上传图片的相关配置信息
- xxx/application-web.yml: 定义web相关的配置信息
.env 配置说明
项目支持在仓库根目录通过 .env / .env.local 管理本地或服务器上的敏感配置。
- 首次使用时,可复制
.env.example为.env - Spring Boot 启动前会自动加载
.env/.env.local launch.sh和deploy.sh启动 jar 时,也会自动source这两个文件.env.local适合放机器本地专属配置,优先级高于.env- 进程环境变量和
-D启动参数优先级仍然更高 .env、.env.local已加入.gitignore,不会提交到仓库
示例:
cp .env.example .env
常见配置包括:
PAICODING_DB_PASSWORDPAICODING_OPENAI_API_KEYPAICODING_ZHIPU_API_SECRET_KEYPAICODING_XUNFEI_APP_IDPAICODING_XUNFEI_API_KEYPAICODING_XUNFEI_API_SECRETPAICODING_XUNFEI_API_PASSWORDPAICODING_DEEPSEEK_API_KEYPAICODING_DOUBAO_API_KEYPAICODING_DOUBAO_ENDPOINTPAICODING_WX_APP_SECRETPAICODING_OSS_AKPAICODING_OSS_SKPAICODING_OSS_ENDPOINTPAICODING_OSS_BUCKETPAICODING_OSS_HOST
技术选型
后端技术栈
| 技术 | 说明 | 官网 | |:-------------------:|----------------------|----------------------------------------------------------------------------------------------------| | Spring & SpringMVC | Java全栈应用程序框架和WEB容器实现 | https://spring.io/ | | SpringBoot | Spring应用简化集成开发框架 | https://spring.io/projects/spring-boot | | mybatis | 数据库orm框架 | https://mybatis.org | | mybatis-plus | 数据库orm框架 | https://baomidou.com/ | | mybatis PageHelper | 数据库翻页插件 | https://github.com/pagehelper/Mybatis-PageHelper | | elasticsearch | 近实时文本搜索 | https://www.elastic.co/cn/elasticsearch/service | | redis | 内存数据存储 | https://redis.io | | rabbitmq | 消息队列 | https://www.rabbitmq.com | | mongodb | NoSql数据库 | https://www.mongodb.com/ | | nginx | 服务器 | https://nginx.org | | docker | 应用容器引擎 | https://www.docker.com | | hikariCP | 数据库连接 | https://github.com/brettwooldridge/HikariCP | | oss | 对象存储 | https://help.aliyun.com/document_detail/31883.html | | https | 证书 | https://letsencrypt.org/ | | jwt | jwt登录 | https://jwt.io | | lombok | Java语言增强库 | https://projectlombok.org | | guava | google开源的java工具集 | https://github.com/google/guava | | thymeleaf | html5模板引擎 | https://www.thymeleaf.org | | swagger | API文档生成工具 | https://swagger.io | | hibernate-validator | 验证框架 | hibernate.org/validator/ | | quick-media | 多媒体处理 | https://github.com/liuyueyi/quick-media | | liquibase | 数据库版本管理 | https://www.liquibase.com | | jackson | json/xml处理 | https://www.jackson.com | | ip2region | ip地址 | https://github.com/zoujingli/ip2region | | websocket | 长连接 | https://docs.spring.io/spring/reference/web/websocket.html | | sensitive-word | 敏感词 | https://github.com/houbb/sensitive-word | | chatgpt | chatgpt | https://openai.com/blog/chatgpt | | 讯飞星火 | 讯飞星火大模型 | https://www.xfyun.cn/doc/spark/Web.html |
三、技术派教程
技术派教程共 120+ 篇,从中整理出 20 篇,供大家免费学习。
