technological-brain-server/README.md

4.9 KiB
Raw Blame History

科技大脑展示平台technological-brain

面向高校/企业的人才与科研信息管理与展示后端服务,基于 Spring Boot 构建,集成权限认证、参数配置、科研与成果管理等功能模块,并提供在线 API 文档。

技术栈

  • 后端框架: Spring Boot 2.5.14, Spring MVC, Spring Security (JWT)
  • 持久层: MyBatis-Plus, MyBatis XML 映射
  • 数据库/连接池: MySQL 8.x, Druid
  • 缓存: Redis (Lettuce)
  • 对象映射: MapStruct
  • 工具库: Hutool, Guava, Apache Commons
  • 文档: Springfox Swagger2 2.9.2, Knife4j
  • 云存储: 阿里云 OSS SDK

目录结构(关键路径)

src/
  main/
    java/com/CUST/brain/
      BrainApplication.java               # 应用入口
      common/                             # 通用配置、拦截器、异常、工具
        config/                           # Security / Swagger / Redis 等配置
        security/                         # JWT 过滤器、异常处理器
        dto/ enums/ utils/ ...
      dao/
        domain/                           # 实体对象
        mapper/                           # MyBatis-Plus Mapper 接口
      service/                            # 业务接口与实现
      web/controller/                     # REST 控制器
    resources/
      application.yml                     # 应用配置
      mapper/*.xml                        # MyBatis 映射 XML
      db/schema.sql                       # 库表结构初始化
      db/data.sql                         # 基础数据(菜单/用户/角色/参数等)

功能模块

  • 系统管理: 用户、角色、权限、参数(类型/值)
  • 人才管理: 人才基本信息、工作单位(高校/企业)、履历、工作领域
  • 科研管理: 科研项目、立项项目、科技报告
  • 成果管理: 论文专著、专利、学术奖励、荣誉称号

以上模块的导航/菜单初始化见 src/main/resources/db/data.sql

环境要求

  • JDK 1.8
  • Maven 3.6+
  • MySQL 8.x
  • Redis 5+

快速开始

  1. 克隆并进入项目目录
git clone <your-repo-url>
cd technological_brain
  1. 配置数据库与中间件
  • 新建数据库 technological_brain(或使用自定义库名)
  • 启动 Redis 服务
  • 根据实际环境修改 src/main/resources/application.yml 中的以下配置项(建议改为环境变量或外部化配置):
    • spring.datasource.url / username / password
    • spring.redis.host / port / password
    • jwt.secret / expiration
    • oss.endpoint / access-key-id / access-key-secret / bucket-name / domain
  1. 初始化数据库
-- 执行库表结构
src/main/resources/db/schema.sql

-- 初始化菜单/用户/角色/参数等数据
src/main/resources/db/data.sql
  1. 启动服务
mvn clean package -DskipTests
java -jar target/brain-1.0.0.jar

默认服务端口与上下文路径见 application.yml:

  • 端口: 8090
  • 上下文: /brain

因此应用根地址为: http://localhost:8090/brain

API 文档与调试

  • 文档入口: http://localhost:8090/brain/doc.html
  • Swagger/Knife4j 可通过 swagger.enableknife4j.enable 开关控制
  • 文档扫描基础包: com.CUST.brain.web.controller

认证与授权

  • 统一认证接口(放行): POST /api/system/auth/login
  • 其他接口默认需要认证,携带 JWT:
    • Header: Authorization: Bearer <token>
  • 安全配置参考 common/config/SecurityConfig.java

配置说明(节选)

src/main/resources/application.yml 包含以下关键配置:

  • server: port, servlet.context-path
  • spring.datasource: Druid 数据源与连接池参数
  • spring.redis: Redis 连接与池参数
  • mybatis-plus: mapper-locations, type-aliases-package, 驼峰映射、逻辑删除
  • logging: 各包日志级别
  • swagger/knife4j: 文档开关与显示项
  • jwt: secret, expiration, tokenHeader, tokenHead
  • oss: 阿里云 OSS 访问配置(请勿在仓库中明文提交敏感信息)

安全提示强烈建议将数据库、Redis、JWT、OSS 等敏感配置改为环境变量或外部化配置文件,避免明文泄露。

构建与部署

  • 构建命令:mvn clean package -DskipTests
  • 运行命令:java -jar target/brain-1.0.0.jar
  • 常用 JVM/运行参数:
java -Xms512m -Xmx1024m \
  -Dspring.profiles.active=prod \
  -Dserver.port=8090 \
  -jar target/brain-1.0.0.jar

常见问题

  • 文档页无法访问:确认 swagger.enable=trueknife4j.enable=true,并使用带有上下文路径的地址 /brain/doc.html
  • 登录失败检查初始化数据是否执行、用户密码是否匹配、JWT secret 是否与生成 token 的配置一致。
  • 数据源/Redis 连接失败:核对主机、端口、用户名密码与防火墙/容器网络。

版权与声明

本项目仅用于教学/演示目的,涉及的账号、密钥配置请在实际部署前更换为安全的私有配置。