## 科技大脑展示平台(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 ### 目录结构(关键路径) ```text 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) 克隆并进入项目目录 ```bash git clone cd technological_brain ``` 2) 配置数据库与中间件 - 新建数据库 `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 3) 初始化数据库 ```sql -- 执行库表结构 src/main/resources/db/schema.sql -- 初始化菜单/用户/角色/参数等数据 src/main/resources/db/data.sql ``` 4) 启动服务 ```bash 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.enable` 与 `knife4j.enable` 开关控制 - 文档扫描基础包: `com.CUST.brain.web.controller` ### 认证与授权 - 统一认证接口(放行): `POST /api/system/auth/login` - 其他接口默认需要认证,携带 JWT: - Header: `Authorization: Bearer ` - 安全配置参考 `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/运行参数: ```bash java -Xms512m -Xmx1024m \ -Dspring.profiles.active=prod \ -Dserver.port=8090 \ -jar target/brain-1.0.0.jar ``` ### 常见问题 - 文档页无法访问:确认 `swagger.enable=true`、`knife4j.enable=true`,并使用带有上下文路径的地址 `/brain/doc.html`。 - 登录失败:检查初始化数据是否执行、用户密码是否匹配、JWT `secret` 是否与生成 token 的配置一致。 - 数据源/Redis 连接失败:核对主机、端口、用户名密码与防火墙/容器网络。 ### 版权与声明 本项目仅用于教学/演示目的,涉及的账号、密钥配置请在实际部署前更换为安全的私有配置。