后端README.md提交

develop
ymst 3 months ago
parent 0d1d9b062b
commit a4206ecf67

@ -0,0 +1,121 @@
# 文物资源知识管理系统后端
这是“ArtifactLLM”大模型增强的文物资源知识管理系统的后端多模块工程基于 Spring Boot 3 与 Java 21 构建提供文物浏览、智能检索、知识图谱、AI 助手、用户与权限管理、模型管理等核心服务能力。
## 项目概述
后端采用 Maven 多模块结构按领域拆分为系统管理、文物建模、知识图谱、AI 服务等模块。主应用通常由 artifact-web 模块启动,其他服务模块可按需独立运行(注意端口与资源占用)。
## 技术栈
- Java 21
- Spring Boot 3
- Spring Web
- Spring Security + 自定义 JWT 拦截器
- MyBatis-Plus
- MySQL
- Redis
- Neo4j
- Spring Mail
- Maven
## 项目结构
```
ArtifactLLM_banker/
├── artifact-web/ # 主应用启动模块(入口、聚合接口、全局配置)
│ └── src/main/
│ ├── java/cn/edu/hnu/artifactweb/ArtifactWebApplication.java
│ └── resources/application.yml
├── artifact-system/ # 系统管理(用户、角色、权限、反馈等)
│ └── src/main/
│ ├── java/cn/edu/hnu/artifactsystem/{controller,service,mapper,config,interceptor}
│ └── resources/application.yml
├── artifact-relic/ # 文物建模与审核
│ └── src/main/
│ ├── java/cn/edu/hnu/artifactrelic/{controller,service,mapper,config,utils}
│ └── resources/application.yml
├── artifact-knowledge/ # 知识图谱服务Neo4j
│ └── src/main/
│ ├── java/cn/edu/hnu/artifactknowledge/{controller,service,connector}
│ └── resources/application.yml
├── artifact-ai/ # AI 服务(智能问答、会话)
│ └── src/main/
│ ├── java/cn/edu/hnu/artifactai/{controller,service,mapper,config}
│ └── resources/application.properties
├── artifact-common/ # 通用模块统一返回、上下文、JWT 等)
│ └── src/main/java/cn/edu/hnu/artifactcommon/{result,utils,context}
└── pom.xml # Maven 父 POM依赖与版本管理
```
## 开发环境搭建
1. 安装 JDK 21 与 Maven推荐 Maven 3.9+
2. 准备依赖服务:
- MySQL创建数据库并配置连接
- Redis本地或远程实例
- Neo4j本地或远程图数据库
3. 根据实际环境修改各模块的配置文件数据库地址、账号密码、Redis、Neo4j、邮件、AI 密钥等):
- artifact-web: `src/main/resources/application.yml`
- artifact-system: `src/main/resources/application.yml`
- artifact-relic: `src/main/resources/application.yml`
- artifact-knowledge: `src/main/resources/application.yml`
- artifact-ai: `src/main/resources/application.properties`
4. 在项目根目录执行依赖安装与编译:
```
mvn clean install
```
5. 启动主应用artifact-web
```
cd artifact-web
mvn spring-boot:run
```
## 构建部署
- 构建生产版本(以主应用为例):
```
mvn -pl artifact-web -am clean package
```
- 运行打包产物:
```
java -jar artifact-web/target/artifact-web-*.jar
```
- 也可按需在各模块内独立运行(注意端口避免冲突)。
## 端口与配置
- artifact-web默认 8080前端开发代理指向该端口
- artifact-relic默认 8080与主应用共端口避免同时独立运行
- artifact-knowledge默认 8083
- artifact-ai默认 8083
- 数据源与中间件:
- MySQL各模块独立配置
- Redis主要在 artifact-web 使用
- Neo4jartifact-web 与 artifact-knowledge 使用
## 功能模块
1. 系统管理(用户、角色、权限、反馈)
2. 文物建模与审核(建模实体创建、类型创建、批量导入、审核)
3. 智能检索与知识图谱Neo4j 关联查询、图谱可视化数据服务)
4. AI 助手(模型问答、消息交互)
5. 通用能力统一返回结构、JWT 工具、上下文封装)
## 安全与认证
- 使用 Spring Security 的无状态基础配置,关闭 CSRF
- 通过自定义拦截器实现:
- JWT 认证拦截器:保护 `/api/**`,放行登录、注册、验证码、图谱与文物公共接口
- 权限拦截器:基于注解驱动的细粒度权限校验
- JWT 采用 HS256 签名,包含用户角色与用户 ID 的声明
## 注意事项
- 开发联调:前端开发服务器默认代理到 `http://localhost:8080`
- 生产环境务必:
- 使用强密钥并通过环境变量或外部配置注入
- 不要在代码库中硬编码任何敏感信息数据库、Redis、Neo4j、邮件、AI 密钥等)
- 合理拆分与部署各模块,避免端口冲突与资源竞争
- 运行各模块前请确保依赖服务已启动MySQL、Redis、Neo4j
Loading…
Cancel
Save