# 灵越智报 Starter ## 概述 `lingyue-starter` 是灵越智报的单体应用启动器,整合了所有微服务模块为一个可独立运行的应用。 ## 功能特性 - **单体应用架构**: 整合所有微服务模块(auth、document、parse、ai、graph、notification) - **统一配置**: 集中管理所有服务的配置 - **API文档**: 集成 SpringDoc OpenAPI(Swagger UI) - **请求日志**: 自动记录HTTP请求参数 - **热部署**: 支持Spring Boot DevTools热部署 - **国际化**: 支持多语言消息 ## 项目结构 ``` lingyue-starter/ ├── pom.xml └── src/main/ ├── java/com/lingyue/ │ ├── LingyueApplication.java # 主启动类 │ └── config/ # 配置类 │ ├── SpringDocConfig.java # API文档配置 │ ├── RequestParameterLoggingConfig.java # 请求日志配置 │ └── interceptor/ │ └── RequestParameterLoggingInterceptor.java └── resources/ ├── application.yml # 主配置文件 ├── application-dev.yml # 开发环境配置 ├── application-prod.yml # 生产环境配置 ├── mybatis/ │ └── mybatis-config.xml # MyBatis配置 ├── i18n/ │ └── messages.properties # 国际化资源 └── banner.txt # 启动Banner ``` ## 快速开始 ### 1. 编译项目 ```bash cd backend mvn clean install ``` ### 2. 启动应用 ```bash cd lingyue-starter mvn spring-boot:run ``` 或者直接运行jar包: ```bash java -jar lingyue-starter.jar ``` ### 3. 访问应用 - **应用地址**: http://localhost:8000 - **API文档**: http://localhost:8000/swagger-ui.html - **Druid监控**: http://localhost:8000/druid/ ## 配置说明 ### 应用配置 在 `application.yml` 中配置: ```yaml app: name: 灵越智报 version: 2.0.0 uploadBaseDir: /tmp/lingyue-zhibao ``` ### 数据库配置 ```yaml spring: datasource: druid: url: jdbc:postgresql://localhost:5432/lingyue_zhibao username: postgres password: postgres ``` ### API文档配置 开发环境默认启用API文档,生产环境自动禁用: ```yaml springdoc: api-docs: enabled: true # dev环境启用,prod环境禁用 ``` ## 环境配置 ### 开发环境 使用 `application-dev.yml`,包含本地开发配置。 ### 生产环境 使用 `application-prod.yml`,通过环境变量配置: ```bash export DB_USERNAME=postgres export DB_PASSWORD=your_password export JWT_SECRET=your_jwt_secret export REDIS_HOST=localhost export REDIS_PORT=6379 ``` ## API分组 API文档按服务分组: - **auth-api**: 认证服务 API - **document-api**: 文档管理 API - **parse-api**: 解析服务 API - **ai-api**: AI处理服务 API - **graph-api**: 关系网络服务 API ## 注意事项 1. **服务发现**: 单体应用默认禁用Nacos服务发现(`spring.cloud.nacos.discovery.enabled: false`) 2. **端口**: 默认端口8000,可在配置文件中修改 3. **数据库**: 确保PostgreSQL数据库已创建并执行初始化脚本 4. **Redis**: 确保Redis服务已启动 5. **RabbitMQ**: 确保RabbitMQ服务已启动(如使用消息队列功能) ## 与微服务架构的区别 | 特性 | 微服务架构 | 单体应用(Starter) | |------|-----------|-------------------| | 部署方式 | 多个独立服务 | 单个应用 | | 服务发现 | 需要Nacos | 不需要 | | API网关 | 需要Gateway | 不需要 | | 配置管理 | 分散在各服务 | 统一配置 | | 适用场景 | 大型项目、分布式 | 中小型项目、快速开发 | ## 开发建议 1. **开发阶段**: 使用 `lingyue-starter` 快速开发和调试 2. **生产环境**: 根据实际需求选择单体应用或微服务架构 3. **迁移**: 可以轻松从单体应用迁移到微服务架构(代码无需修改)