Files
Jiscuss/README.md
T
2026-04-30 16:27:58 +08:00

239 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
中文   |   [English](./README.md)
<p align="center"><img src="https://s3.ax1x.com/2021/01/16/srNEa6.png" height="200" alt="logo"/></p>
<h1 align="center"> Jiscuss </h1>
<h3 align="center">基于java的简单论坛系统,Jiscuss = Java + Discuss。</h3>
---
<p align="center">
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue" alt="License MIT"></a>
</p>
<p align="center">
<a href="https://github.com/chuyaoyuan/Jiscuss">Github 仓库</a> &nbsp; | &nbsp;
<a href="https://gitee.com/chuyaoyuan/Jiscuss">Gitee 仓库</a> &nbsp; | &nbsp;
<a href="http://demo.jiscuss.com/" target="_blank">在线体验</a>
</p>
# 预览
[![sykhy4.md.png](https://s3.ax1x.com/2021/01/17/sykhy4.md.png)](https://imgchr.com/i/sykhy4)
# 简介
基于JAVA,使用SpringBoot + H2 Database + Semantic-UI + Freemarker 构建,官网:[[www.jiscuss.com]](http://www.jiscuss.com/)
# 在线体验
- [[DEMO地址]](http://demo.jiscuss.com/)
# 部署
## [一]、开发环境配置
```
// 需jdk 1.8以上,maven3以上。
```
## [二]、下载代码
```
// Github - https://gitee.com/chuyaoyuan/Jiscuss.git
// Gitee - https://github.com/Chuyaoyuan/Jiscuss.git
```
## [三]、运行启动(默认使用H2数据库,可以在配置文件切换MYSQL)
```
// 1、代码导入IDE
// 2、启动服务
// 4、访问地址
http://localhost
```
> 说明:以上为原始快速启动说明。当前升级后的 v2.0 分支已迁移到 Spring Boot 3,推荐使用 JDK 17 运行;旧版本中的 JDK 1.8 说明仅适用于早期分支。
## 当前升级版本说明
当前代码已完成 Spring Boot 3 兼容升级,主要技术栈如下:
- Java 17
- Spring Boot 3.3.5
- Spring Security 6
- Spring Data JPA / Hibernate 6
- FreeMarker
- H2 Database(开发环境默认)
- MySQL 8(生产/外部数据库环境)
- Flyway(数据库版本迁移)
- SpringDoc OpenAPI(替代 Springfox Swagger
- Ehcache 3 + JCache
- Druid Spring Boot 3 Starter
- MapStruct
## 环境要求
- JDK17+
- Maven3.8+
- MySQL8.x(仅 mysql profile 需要)
检查本地环境:
```
java -version
javac -version
mvn -version
```
## 构建与启动
### 使用默认 H2 开发环境
项目默认激活 `h2` profile
```
mvn spring-boot:run
```
访问:
```
http://localhost
```
如果本机 Linux 普通用户无法绑定 80 端口,可以临时指定其他端口:
```
mvn spring-boot:run -Dspring-boot.run.arguments="--server.port=8080"
```
然后访问:
```
http://localhost:8080
```
### 使用 MySQL 环境
1. 创建数据库:
```
CREATE DATABASE jiscuss DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
2. 修改配置文件:
```
src/main/resources/application-mysql.yml
```
根据实际环境修改:
- `spring.datasource.url`
- `spring.datasource.username`
- `spring.datasource.password`
3. 启动 mysql profile
```
mvn spring-boot:run -Dspring-boot.run.profiles=mysql
```
## 数据库迁移说明
项目已使用 Flyway 接管数据库初始化和后续变更,迁移脚本位于:
```
src/main/resources/db/migration/
```
当前迁移文件:
- `V1__init_schema.sql`:初始化表结构和基础数据
- `V2__security_updates.sql`:安全相关字段/数据升级
注意:旧的 `schema.sql``data.sql` 已不再使用,避免与 Flyway 重复初始化。
## 安全与管理端点
- 登录认证已迁移到 Spring Security 6 配置方式。
- `/admin/**``/actuator/**``/druid/**` 需要管理员角色访问。
- H2 Console 默认关闭;如需开发调试,可显式开启:
```
mvn spring-boot:run -Dspring-boot.run.arguments="--spring.h2.console.enabled=true"
```
- OpenAPI 文档地址:
```
http://localhost/swagger-ui.html
http://localhost/v3/api-docs
```
## 网络不佳时的构建建议
如果依赖已经下载到本地 Maven 仓库,可以使用离线模式:
```
mvn -o -DskipTests compile
```
如果首次构建尚未下载 Spring Boot 3.3.5 等依赖,离线模式会失败,需要在网络可用时先执行一次:
```
mvn -DskipTests compile
```
国内网络环境可配置 Maven 镜像源后再构建。依赖下载完成后,后续即可使用 `mvn -o` 离线构建。
## 常用检查命令
编译检查:
```
mvn -DskipTests compile
```
打包:
```
mvn -DskipTests package
```
运行 jar
```
java -jar target/jiscuss-0.0.1-SNAPSHOT.jar
```
## 升级注意事项
- Spring Boot 3 使用 `jakarta.*` 命名空间,旧的 `javax.servlet``javax.persistence``javax.validation` 不再使用。
- Hibernate 6 可自动识别数据库方言,配置中无需手动指定 `database-platform`
- MySQL 连接已移除不推荐的 `autoReconnect=true`
- JSON 响应优先使用 Spring MVC + Jackson 自动序列化,不再依赖 `org.json`
- WebSocket starter 已移除;如后续确实需要实时通信,再按功能重新引入。
## [四]、开源协议
[MIT](https://opensource.org/licenses/MIT)