|
|
||
|---|---|---|
| .idea | ||
| .vscode | ||
| src/main | ||
| target | ||
| README.md | ||
| pom.xml | ||
| technological-brain.iml | ||
README.md
科技大脑展示平台(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+
快速开始
- 克隆并进入项目目录
git clone <your-repo-url>
cd technological_brain
- 配置数据库与中间件
- 新建数据库
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
- 初始化数据库
-- 执行库表结构
src/main/resources/db/schema.sql
-- 初始化菜单/用户/角色/参数等数据
src/main/resources/db/data.sql
- 启动服务
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 <token>
- Header:
- 安全配置参考
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=true、knife4j.enable=true,并使用带有上下文路径的地址/brain/doc.html。 - 登录失败:检查初始化数据是否执行、用户密码是否匹配、JWT
secret是否与生成 token 的配置一致。 - 数据源/Redis 连接失败:核对主机、端口、用户名密码与防火墙/容器网络。
版权与声明
本项目仅用于教学/演示目的,涉及的账号、密钥配置请在实际部署前更换为安全的私有配置。