# java8blog **Repository Path**: xiewengui19940313/java8blog ## Basic Information - **Project Name**: java8blog - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-31 - **Last Updated**: 2026-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Java 八股文博客系统 自动爬取 Java 面试八股文 → 去重过滤 → AI 改写扩写 → 智能分类 → 发布博客,支持一键导出移动端可读格式。 ## 功能特性 - **多源爬取**:支持掘金、CSDN、GitHub 仓库等技术社区 - **智能去重**:SHA256 精确去重 + SimHash 模糊去重,避免重复内容 - **AI 改写**:自动评估文章质量,针对性改写或扩写,用词简单易懂 - **自动分类**:基于内容自动归类到 Java 八股文知识体系 - **一键导出**:支持 HTML(移动端友好)、Markdown ZIP 等格式 - **定时任务**:自动爬取 + 自动处理,无需人工干预 ## 技术栈 | 层级 | 技术 | |------|------| | 后端 | Spring Boot 3.2 + MyBatis Plus | | 前端 | Vue 3 + Element Plus + Vite | | 数据库 | MySQL 8.0 + Redis | | 爬虫 | Jsoup + WebFlux | | AI | OpenAI / Ollama(可配置) | | 定时 | Spring @Scheduled | ## 快速开始 ### 环境要求 - JDK 17+ - MySQL 8.0 - Redis - Node.js 18+ ### 1. 初始化数据库 ```bash mysql -u root -p < sql/init.sql ``` ### 2. 配置 AI API Key 编辑 `blog-backend/src/main/resources/application.yml`: ```yaml ai: provider: openai # 或 ollama openai: api-key: your-api-key-here ``` ### 3. 启动后端 ```bash cd blog-backend mvn spring-boot:run ``` ### 4. 启动前端 ```bash cd blog-frontend npm install npm run dev ``` ### 5. 访问 - 博客首页:http://localhost:5173 - API 文档:http://localhost:8080/doc.html ## 项目结构 ``` java-blog-system/ ├── blog-common/ # 公共模块 ├── blog-crawler/ # 爬虫模块 │ ├── parser/ # 各站解析器 │ ├── dedup/ # 去重工具 │ └── scheduler/ # 定时任务 ├── blog-ai/ # AI 处理模块 │ ├── provider/ # LLM 适配层 │ ├── rewrite/ # 改写服务 │ └── categorize/ # 自动分类 ├── blog-core/ # 核心业务 │ ├── entity/ # 实体类 │ ├── mapper/ # 数据访问 │ └── export/ # 导出服务 ├── blog-backend/ # 启动模块 ├── blog-frontend/ # Vue 前端 └── sql/ # 数据库脚本 ``` ## API 接口 ### 文章 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/articles | 文章列表 | | GET | /api/articles/{slug} | 文章详情 | | GET | /api/articles/search?q= | 搜索 | ### 管理 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/admin/articles | 所有文章 | | POST | /api/admin/crawl/trigger | 手动触发爬取 | | GET | /api/admin/stats | 系统统计 | ### 导出 | 方法 | 路径 | 说明 | |------|------|------| | GET | /api/export/html | 导出 HTML | | GET | /api/export/markdown | 导出 Markdown ZIP | ## 配置说明 ### AI 提供者 支持 OpenAI 和 Ollama(本地模型),在 `application.yml` 中切换: ```yaml # 使用 OpenAI ai: provider: openai openai: api-key: sk-xxx model: gpt-4o # 使用 Ollama 本地模型 ai: provider: ollama ollama: base-url: http://localhost:11434 model: qwen2.5:7b ``` ### 爬虫配置 在 `SiteParser` 实现类中可以调整: - 请求间隔(避免被封) - 最大爬取页数 - 关键词过滤 ## License MIT