Files
AI_OJ/aioj-backend-blog-service
2026-01-20 17:20:03 +08:00
..
2026-01-20 17:20:03 +08:00
2026-01-20 17:20:03 +08:00
2026-01-20 17:20:03 +08:00

AIOJ 博客服务模块

模块说明

aioj-backend-blog-service 是 AIOJ 系统的博客服务模块,用于用户发帖、分享技术经验、写文章。

功能特性

  • 文章管理:发布、编辑、删除、草稿箱
  • 分类管理:支持多级分类
  • 标签系统:文章标签分类和关联
  • 评论系统:支持多级评论和回复
  • 点赞/收藏:文章和评论点赞、收藏功能
  • 浏览统计:文章浏览记录和统计
  • Markdown 支持:原生支持 Markdown 编辑和渲染
  • 搜索功能:全文搜索文章标题和内容

技术栈

  • Spring Boot 3.5.7
  • MyBatis Plus
  • MySQL 8.0
  • Redis
  • Nacos 服务发现
  • FlexMark (Markdown 处理)
  • Knife4j (API 文档)

端口配置

  • 开发环境: 18086
  • 上下文路径: /api

数据库

数据库名称: aioj_blog

初始化 SQL 脚本: ../../db/blog.sql

核心表结构

表名 说明
blog_article 文章表
blog_category 文章分类表
blog_tag 文章标签表
blog_article_tag 文章标签关联表
blog_comment 评论表
blog_like 点赞表
blog_favorite 收藏表
blog_view 浏览记录表
blog_draft 草稿箱表

快速开始

1. 初始化数据库

mysql -u root -p < ../../db/blog.sql

2. 配置数据库连接

编辑 src/main/resources/application-dev.yml:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/aioj_blog
    username: your_username
    password: your_password

3. 启动服务

mvn spring-boot:run

或直接运行主类: BlogServiceApplication.java

4. 访问 API 文档

启动服务后访问: http://localhost:18086/api/doc.html

API 接口

文章相关

  • POST /api/article - 创建文章
  • PUT /api/article/{id} - 更新文章
  • DELETE /api/article/{id} - 删除文章
  • GET /api/article/{id} - 获取文章详情
  • GET /api/article/list - 获取文章列表
  • POST /api/article/publish - 发布文章

分类相关

  • GET /api/category/list - 获取分类列表
  • POST /api/category - 创建分类(管理员)

标签相关

  • GET /api/tag/list - 获取标签列表
  • GET /api/tag/hot - 获取热门标签

评论相关

  • POST /api/comment - 发表评论
  • GET /api/comment/article/{articleId} - 获取文章评论列表
  • DELETE /api/comment/{id} - 删除评论

开发指南

代码结构

aioj-backend-blog-service/
├── src/main/java/cn/meowrain/aioj/backend/blogservice/
│   ├── controller/        # 控制器层
│   ├── service/           # 服务层
│   │   └── impl/          # 服务实现层
│   ├── dao/               # 数据访问层
│   │   ├── mapper/        # MyBatis Mapper
│   │   └── model/         # 数据模型
│   ├── dto/               # 数据传输对象
│   ├── vo/                # 视图对象
│   ├── common/            # 公共类
│   ├── config/            # 配置类
│   └── BlogServiceApplication.java
└── src/main/resources/
    ├── mapper/            # MyBatis XML 映射文件
    ├── application.yml    # 主配置文件
    ├── application-dev.yml
    ├── application-test.yml
    ├── application-prod.yml
    └── logback-spring.xml # 日志配置

待实现功能

  • 文章 CRUD 接口
  • 分类管理接口
  • 标签管理接口
  • 评论系统接口
  • 点赞/收藏接口
  • 文章搜索接口
  • Markdown 渲染服务
  • 文章定时发布
  • 文章审核功能
  • 用户关注和动态

更新日志

2025-01-20 - 初始创建

创建者: Claude Code

工作内容:

  1. 模块结构搭建

    • 创建完整的 Maven 模块目录结构
    • 配置 pom.xml,引入所需依赖
    • 创建主应用类 BlogServiceApplication.java
    • 更新父 pom.xml,添加新模块注册
  2. 配置文件创建

    • application.yml - 主配置文件
      • 服务端口: 18086
      • 上下文路径: /api
      • MyBatis Plus 配置
      • Knife4j API 文档配置
    • application-dev.yml - 开发环境配置
    • application-test.yml - 测试环境配置
    • application-prod.yml - 生产环境配置
    • logback-spring.xml - 日志配置
  3. 数据库设计

    • 创建 db/blog.sql 数据库初始化脚本
    • 设计 9 张核心表:
      • blog_article - 文章表(支持草稿、发布、下架等状态)
      • blog_category - 分类表(支持多级分类)
      • blog_tag - 标签表
      • blog_article_tag - 文章标签关联表
      • blog_comment - 评论表(支持多级回复)
      • blog_like - 点赞表
      • blog_favorite - 收藏表
      • blog_view - 浏览记录表
      • blog_draft - 草稿箱表
    • 添加初始分类和标签数据
  4. 依赖说明

    • Spring Boot 3.5.7
    • Spring Cloud & Nacos服务发现
    • MyBatis PlusORM
    • FlexMarkMarkdown 处理)
    • Knife4jAPI 文档)
    • Redis缓存
    • MySQL数据库
  5. 待实现功能

    • 文章 CRUD 接口开发
    • 分类管理接口
    • 标签管理接口
    • 评论系统接口
    • 点赞/收藏接口
    • 文章搜索接口
    • Markdown 渲染服务
    • 文章定时发布
    • 文章审核功能

注意事项:

  • 确保先执行 db/blog.sql 初始化数据库
  • 检查 application-dev.yml 中的数据库连接配置
  • JWT 配置需与 aioj-backend-auth 保持一致
  • 启动前确保 Nacos 服务已运行

License

Copyright © 2025 AIOJ Project