价格

快速上手

相关源文件

本页面内容基于以下源文件生成:

南生论坛(Nan's BBS)是一个基于 SpringBoot + Vue 框架实现的前后端分离社区系统,采用大厂微服务架构设计,仿掘金风格,支持多端适配。该项目分为用户系统(南生论坛)和管理系统(南生运营)两部分,提供文章、问答、话题、积分系统、私信等完整社区功能(README.md:1-40)。

后端技术栈包括 SpringBoot、Dubbo RPC、Zookeeper 注册中心、RocketMQ 消息队列、Redis 缓存、MySQL 数据库、MongoDB 大数据存储、WebSocket 实时交互、Shiro 权限管理以及七牛云对象存储等(README.md:41-57)。

项目简介与演示

演示环境

开源版演示地址:https://open.nansin.top(普通用户可自行注册;管理员账号:`椿/123456`)

商业版演示地址:https://bbs.nansin.top(普通用户:`椿/123456`;管理员:`测试管理员/123456`)([README.md:29-38](https://github.com/maliangnansheng/bbs-springboot/blob/master/README.md#L29-L38))

相关资源

环境准备与依赖

基础环境要求

组件版本要求说明
JDK17+Spring Boot 3.x 需要
Maven3.6+项目构建工具
MySQL5.7+ / 8.x主数据库
Redis5.x+缓存服务
MongoDB4.x+大数据存储(文章阅读数等)
Zookeeper3.6+Dubbo 注册中心

Maven 父工程配置

项目基于 Spring Boot 3.5.11 版本构建,采用多模块结构(pom.xml:1-80):

xml
1<parent>
2    <groupId>org.springframework.boot</groupId>
3    <artifactId>spring-boot-starter-parent</artifactId>
4    <version>3.5.11</version>
5</parent>
6
7<modules>
8    &lt;module&gt;bbs-rest</module>
9    &lt;module&gt;bbs-common</module>
10    &lt;module&gt;bbs-user</module>
11    &lt;module&gt;bbs-article</module>
12</modules>

项目统一版本为 3.0.0-SNAPSHOT,通过 ${revision} 属性管理(pom.xml:24-27)。

核心依赖版本

依赖版本用途
dubbo-spring-boot-starter3.3.2RPC 框架
mybatis-spring-boot-starter3.0.4持久层框架
druid-spring-boot-starter1.2.24数据库连接池
mysql-connector-j9.6.0MySQL 驱动
redisson3.42.0Redis 客户端
shiro-spring3.0.0-alpha-1权限管理
knife4j-openapi3-jakarta-spring-boot-starter4.5.0API 文档

完整依赖版本定义参见(pom.xml:81-120)。

核心配置说明

REST 服务配置

REST 层作为 API 网关,监听端口 7010,上下文路径为 /apibbs-rest/src/main/resources/application.yml:1-35):

yaml
1server:
2  port: 7010
3  servlet:
4    context-path: /api
5
6spring:
7  application:
8    name: ns-bbs-rest
9  data:
10    redis:
11      host: 139.9.78.65
12      port: 6222
13      timeout: 60000
14
15dubbo:
16  application:
17    name: ns-bbs-rest
18  registry:
19    address: zookeeper://139.9.78.65:2181
20    timeout: 60000
21  protocol:
22    name: dubbo
23    port: 22001

业务服务配置

Article 服务监听端口 7011,使用 Druid 连接池管理 MySQL 连接(bbs-article/bbs-article-service/src/main/resources/application.yml:1-45):

yaml
1server:
2  port: 7011
3
4spring:
5  datasource:
6    url: jdbc:mysql://127.0.0.1:3306/open_bbs?characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
7    username: root
8    password: 777888  # 需要改成你自己的
9    druid:
10      initial-size: 5
11      min-idle: 5
12      max-active: 20
13  data:
14    mongodb:
15      uri: mongodb://127.0.0.1:27017/open_bbs

User 服务监听端口 7013,配置与 Article 服务类似(bbs-user/bbs-user-service/src/main/resources/application.yml:1-40)。

配置项汇总

服务端口Dubbo 端口说明
bbs-rest701022001API 网关
bbs-article701122002文章服务
bbs-user701322003用户服务

安装步骤

克隆项目

bash
1git clone https://github.com/maliangnansheng/bbs-springboot.git
2cd bbs-springboot

修改配置文件

  1. 修改数据库配置:编辑 bbs-article/bbs-article-service/src/main/resources/application.ymlbbs-user/bbs-user-service/src/main/resources/application.yml,将 MySQL 用户名和密码改为本地配置(bbs-article/bbs-article-service/src/main/resources/application.yml:15-18):
yaml
1username: root
2password: 你的密码
  1. 修改 Redis 配置:将 Redis 地址改为本地服务地址(建议/常见做法,未在仓库证据中出现)。

  2. 修改 Zookeeper 配置:将 Dubbo 注册中心地址改为本地 Zookeeper 地址(建议/常见做法,未在仓库证据中出现)。

构建项目

bash
1mvn clean install -DskipTests

最短可运行路径

服务启动顺序

由于项目采用 Dubbo 微服务架构,需要按以下顺序启动服务:

正在加载图表渲染器...

启动命令

  1. 启动基础设施服务(MySQL、Redis、MongoDB、Zookeeper)

  2. 启动 User 服务

bash
1cd bbs-user/bbs-user-service
2mvn spring-boot:run
  1. 启动 Article 服务
bash
1cd bbs-article/bbs-article-service
2mvn spring-boot:run
  1. 启动 REST 网关服务
bash
1cd bbs-rest
2mvn spring-boot:run

运行验证

健康检查

服务启动后,可通过以下方式验证:

  1. API 文档访问:Swagger/Knife4j 文档地址(需要确认具体路径,配置中 swagger.show: true 表示已启用)(bbs-rest/src/main/resources/application.yml:58-60

  2. 端口检查

bash
1# 检查 REST 服务端口
2curl http://localhost:7010/api
3
4# 检查各服务是否正常监听
5netstat -tlnp | grep -E "7010|7011|7013"
  1. Dubbo 服务检查:通过 Zookeeper 客户端查看服务注册情况(建议/常见做法,未在仓库证据中出现)

预期输出

成功启动后,控制台应显示类似以下日志(需要确认,具体日志格式未在源文件中提供):

  • Started NsBbsRestApplication in X.XXX seconds
  • Dubbo Service Server started

完整验证流程

详细部署教程参见官方文档:【后端】安装部署教程README.md:35

视频教程:https://www.bilibili.com/video/BV1ThYQzfEvR([README.md:37](https://github.com/maliangnansheng/bbs-springboot/blob/master/README.md#L37))

常见问题与排错

问题 1:数据库连接失败

现象:启动时报错 Could not create connection to database server

原因:MySQL 配置不正确或数据库未创建

解决方案

  1. 确认 MySQL 服务已启动
  2. 创建数据库 open_bbs
sql
1CREATE DATABASE open_bbs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  1. 检查 application.yml 中的数据库连接配置(bbs-article/bbs-article-service/src/main/resources/application.yml:12-18

问题 2:Dubbo 服务注册失败

现象:启动时报错 Failed to register dubbo service

原因:Zookeeper 未启动或地址配置错误

解决方案

  1. 确认 Zookeeper 服务已启动
  2. 检查 Dubbo 注册中心配置(bbs-rest/src/main/resources/application.yml:33-35):
yaml
1dubbo:
2  registry:
3    address: zookeeper://127.0.0.1:2181

问题 3:Redis 连接超时

现象:启动时报错 Unable to connect to Redis

原因:Redis 服务未启动或配置错误

解决方案

  1. 确认 Redis 服务已启动
  2. 检查 Redis 配置(bbs-rest/src/main/resources/application.yml:18-28):
yaml
1spring:
2  data:
3    redis:
4      host: 127.0.0.1
5      port: 6379
6      timeout: 60000

问题 4:端口冲突

现象:启动时报错 Port 7010 already in use

原因:端口被其他进程占用

解决方案

  1. 查找并终止占用端口的进程:
bash
1# Linux/Mac
2lsof -i :7010
3kill -9 <PID>
4
5# Windows
6netstat -ano | findstr :7010
7taskkill /PID <PID> /F
  1. 或修改 application.yml 中的端口号(bbs-rest/src/main/resources/application.yml:1-4

问题 5:循环依赖错误

现象:Spring Boot 2.6+ 版本报错 The dependencies of some of the beans in the application context form a cycle

原因:Spring Boot 2.6 默认禁止循环依赖

解决方案:配置中已添加允许循环依赖的设置(bbs-article/bbs-article-service/src/main/resources/application.yml:7-9):

yaml
1spring:
2  main:
3    allow-circular-references: true

下一步建议

前端项目部署

后端服务启动成功后,需要部署前端项目才能完整体验:

前端部署教程:【前端】安装部署教程README.md:35

深入学习资源

完整教程列表参见(README.md:39)。

商用授权

本项目基于 AGPL 3.0 协议开源,个人学习使用不限制,公司使用或商用需要获取授权README.md:10-13)。