# 新闻平台 **Repository Path**: yujing-tec/news-platform---backend ## Basic Information - **Project Name**: 新闻平台 - **Description**: 本项目是一个基于 Spring Boot (Spring Cloud Alibaba) 开发的新闻资讯管理系统后端服务,提供完整的新闻内容管理和发布流程支持。系统架构采用微服务设计,支持高并发访问和大规模内容管理。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2025-06-24 - **Last Updated**: 2025-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 新闻资讯平台后端服务 [![Spring Boot](https://img.shields.io/badge/Spring%20Boot-2.7.x-brightgreen)](https://spring.io/projects/spring-boot) [![MongoDB](https://img.shields.io/badge/MongoDB-4.4%2B-green)](https://www.mongodb.com/) [![Elasticsearch](https://img.shields.io/badge/Elasticsearch-7.17%2B-yellow)](https://www.elastic.co/) [![Redis](https://img.shields.io/badge/Redis-6.0%2B-red)](https://redis.io/) [![JDK](https://img.shields.io/badge/JDK-17%2B-blue)](https://www.oracle.com/java/) ## 项目链接 - 用户端 → [点击前往](https://gitee.com/Martinkeep/news-platform---user-side) - 管理员端 → [点击前往](https://gitee.com/Martinkeep/news-platform---administrator) ## 系统概述 本项目是一个基于 Spring Boot (Spring Cloud Alibaba) 开发的新闻资讯管理系统后端服务,提供完整的新闻内容管理和发布流程支持。系统架构采用微服务设计,支持高并发访问和大规模内容管理。 ## 核心功能 ### 内容管理 - **新闻发布系统**:支持文章的创建、编辑、预览和定时发布 - **状态管理**:文章审核、上线、下线、归档等全生命周期管理 - **内容分类**:多级分类系统,支持自定义分类和标签管理 - **富媒体支持**:图片、视频等多媒体内容的存储和管理 ### 智能采集 - **多源爬虫**:支持ESPN、BBC等多个新闻源的内容采集 - **内容分析**:自动提取标题、摘要、正文和图片 - **定时任务**:支持定时和周期性爬取任务设置 - **去重机制**:智能识别重复内容,避免冗余采集 ### 搜索与推荐 - **全文检索**:基于Elasticsearch的高性能文章搜索 - **智能排序**:根据相关性、时间、热度等多维度排序 - **内容推荐**:支持热门文章、相关推荐、个性化推荐 - **标签体系**:基于标签的内容关联和推荐机制 ### 数据分析 - **访问统计**:文章阅读量、用户访问路径分析 - **热点监控**:实时监测热门内容和搜索关键词 - **用户行为**:用户阅读偏好和互动行为分析 - **运营报表**:支持自定义报表和数据导出 ## 技术架构 ### 存储层 - **MongoDB**:存储文章完整内容及结构化数据 - 文章基本信息(标题、作者、发布时间等) - 文章内容结构(段落、引用、链接等) - 图片资源信息与引用关系 - 评论与互动数据 - **Elasticsearch**:提供高性能搜索和内容发现 - 文章全文索引 - 关键词权重配置 - 复杂搜索条件支持 - 排序和聚合分析 - **Redis**:缓存层和计数服务 - 热门文章缓存 - 阅读量实时计数 - 用户会话管理 - 接口限流保护 ### 应用层 - **Spring Cloud Alibaba**:微服务架构基础 - **WebMagic**:强大的网页爬虫框架 - **Spring Security**:身份认证与授权 - **Nacos**:服务发现和配置管理 - **Gateway**:API网关和请求路由 ## 环境要求 ### 开发环境 - JDK 17+ - Maven 3.6+ - Docker (推荐,用于依赖服务) - IDE:IntelliJ IDEA (推荐) ### 依赖服务 - MongoDB 4.4+ - Elasticsearch 7.17+ - Redis 6.0+ - Nacos 2.1+ ## 快速开始 ### 1. 环境准备 ```bash # 使用Docker快速启动依赖服务(可选) docker-compose up -d ``` ### 2. 获取代码 ```bash git clone [项目地址] cd news-backend ``` ### 3. 配置修改 ```bash # 复制配置文件模板 cp src/main/resources/application.yml.example src/main/resources/application.yml # 根据实际环境修改配置参数 vim src/main/resources/application.yml ``` ### 4. 编译与运行 ```bash # 编译打包 mvn clean package -DskipTests # 启动服务(按依赖顺序) java -jar target/gateway-1.0.0.jar java -jar target/admin-1.0.0.jar java -jar target/article-1.0.0.jar java -jar target/crawler-1.0.0.jar ``` ## 核心配置 ```yaml spring: application: name: news-backend # MongoDB配置 data: mongodb: uri: mongodb://localhost:27017/news_api # Elasticsearch配置 elasticsearch: uris: http://localhost:9200 # Redis配置 redis: host: localhost port: 6379 password: database: 0 # Nacos配置 cloud: nacos: discovery: server-addr: 127.0.0.1:8848 config: server-addr: 127.0.0.1:8848 file-extension: yaml ``` ## API接口概览 ### 内容管理接口 ``` GET /api/admin/articles # 获取文章列表 POST /api/admin/articles # 创建文章 PUT /api/admin/articles/{id} # 更新文章 DELETE /api/admin/articles/{id} # 删除文章 PATCH /api/admin/articles/{id}/status # 更新文章状态 ``` ### 爬虫管理接口 ``` POST /api/crawler/tasks # 创建爬虫任务 GET /api/crawler/tasks # 获取任务列表 GET /api/crawler/tasks/{id} # 获取任务详情 DELETE /api/crawler/tasks/{id} # 停止并删除任务 POST /api/crawler/sources # 添加爬虫源 ``` ### 内容排序接口 ``` PUT /api/admin/articles/{id}/top # 置顶管理 PUT /api/admin/articles/{id}/hot # 热门管理 PUT /api/admin/articles/{id}/recommend # 推荐管理 GET /api/admin/articles/sorted # 获取排序后文章 ``` ### 统计分析接口 ``` GET /api/stats/articles/{id} # 获取文章统计数据 GET /api/stats/overview # 获取系统概览统计 GET /api/stats/trending # 获取热门趋势 GET /api/stats/export # 导出统计数据 ``` ## 注意事项 1. **初始化设置** - 首次运行需执行数据库初始化脚本 - 默认管理员账号:admin/admin123 - 请及时修改默认密码 2. **性能优化** - 爬虫任务建议设置合理的间隔,避免对目标站点造成过大压力 - 对于高频访问接口,合理配置缓存策略 - 文章图片建议使用CDN加速 3. **运维建议** - 定期备份MongoDB数据 - 监控Elasticsearch集群状态 - 为Redis配置持久化策略 - 关注磁盘空间,特别是图片存储区域 4. **安全措施** - API接口添加适当的访问限制 - 敏感操作添加二次验证 - 定期检查日志,关注异常访问 ## 开发规范 1. **编码规范** - 遵循阿里巴巴Java开发手册规范 - 类、方法需添加完整JavaDoc注释 - 提交代码前执行单元测试 2. **Git工作流** - 功能开发使用feature分支 - 版本发布使用release分支 - 提交信息需清晰描述变更内容 3. **文档维护** - 接口变更及时更新API文档 - 复杂业务逻辑添加流程图说明 - 保持与前端的接口文档同步 ## 许可证 [Apache License 2.0](LICENSE)