update
This commit is contained in:
@@ -57,6 +57,178 @@
|
||||
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
|
||||
|
||||
|
||||
## 环境要求
|
||||
|
||||
- JDK:17+
|
||||
- Maven:3.8+
|
||||
- MySQL:8.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 已移除;如后续确实需要实时通信,再按功能重新引入。
|
||||
|
||||
|
||||
## [四]、开源协议
|
||||
|
||||
|
||||
Reference in New Issue
Block a user