美股监控系统 (US Stock Monitor)一个基于Spring Boot的美股新闻监控系统,通过RSS订阅实时监控股票动态,并支持多种消息推送渠道。功能特性RSS订阅监控:自动抓取Stock Titan网站的RSS订阅源多渠道通知:支持Telegram Bot、微信机器人、钉钉机器人等多种消息推送AI集成:支持Spring AI MCP协议,提供智能助手功能数据统计:提供股票异动次数统计和查询功能国际化:集成百度翻译API,支持中文显示英文标题技术栈后端框架:Spring Boot 4.0.0编程语言:Java 21数据库:MySQL 8.0.33持久层框架:MyBatis-Plus 3.5.14数据库连接池:HikariCP构建工具:MavenRSS解析:Rome (SyndFeed)定时任务:Spring SchedulingAI集成:Spring AI MCP (Model Context Protocol)前端:无(纯后端服务)系统架构本项目采用双模块架构:stock-web:主应用程序,负责RSS抓取、数据存储、消息推送等功能stock-mcp:AI模型上下文协议服务器,为AI助手提供工具调用能力环境要求Java 21 或更高版本Maven 3.6.0 或更高版本MySQL 8.0 或更高版本Python 3.x (仅微信机器人功能需要)安装部署1. 克隆项目git clone <repository-url>cd us_stock_monitor_dev2. 数据库配置创建数据库:CREATE DATABASE us_stock_monitor_dev CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;执行数据库初始化脚本(如果有的话)3. 环境配置修改数据库连接配置:stock-web/src/main/resources/application-dev.ymlstock-mcp/src/main/resources/application-dev.yml配置环境变量,在 .env 文件中添加以下配置:# MySQLMYSQL_HOST=localhostMYSQL_PORT=5506MYSQL_DATABASE=us_stock_monitor_devMYSQL_USERNAME=rootMYSQL_PASSWORD=root# 百度翻译APIBAIDU_TRANSLATE_HOST=https://fanyi-api.baidu.com/api/trans/vip/translateBAIDU_TRANSLATE_APPID=your_app_idBAIDU_TRANSLATE_SECURITYKEY=your_security_key# 钉钉机器人DINGDING_TOKEN=your_dingding_tokenDINGDING_SECRET=your_dingding_secretDINGDING_USERID=your_userid# Telegram Bot(可选)TELEGRAM_BOT_TOKEN=your_telegram_bot_tokenTELEGRAM_CHAT_ID=your_chat_id4. 构建项目mvn clean install5. 启动服务启动Web服务cd stock-webmvn spring-boot:run默认端口:6060启动MCP服务(AI助手服务)cd stock-mcpmvn spring-boot:run默认端口:7070配置说明RSS监控配置监控频率:默认每30秒检查一次RSS源:https://www.stocktitan.net/rss定时任务配置在 StockScheduler.java 中消息推送配置Telegram Bot创建Telegram Bot并获取Token配置 TELEGRAM_BOT_TOKEN 和 TELEGRAM_CHAT_ID在 TelegramBotServiceImpl.java 中修改相关配置微信机器人安装Python 3.x环境安装wxauto库:pip install wxauto仅支持Windows系统仅支持微信3.9.x或低版本的4.0.x钉钉机器人在钉钉群中添加自定义机器人配置 DINGDING_TOKEN 和 DINGDING_SECRET邮件服务配置(MCP模块)在 stock-mcp/src/main/resources/application.yml 中配置SMTP邮件服务API接口系统提供了多种股票数据查询接口,支持按股票代码、时间范围、关键词等方式查询。开发说明项目结构us_stock_monitor_dev/├── stock-web/ # 主应用程序│ ├── src/main/java/com/itzixi/│ │ ├── controller/ # 控制器│ │ ├── entity/ # 实体类│ │ ├── enums/ # 枚举类│ │ ├── mapper/ # 数据访问层│ │ ├── service/ # 业务逻辑层│ │ ├── utils/ # 工具类│ │ ├── Application.java # 启动类│ │ └── StockScheduler.java # 定时任务│ └── src/main/resources/├── stock-mcp/ # AI MCP服务│ ├── src/main/java/com/itzixi/│ │ ├── mcp/tool/ # MCP工具类│ │ └── service/ # 服务实现│ └── src/main/resources/└── pom.xml # 父项目配置核心功能模块RssService:RSS订阅源处理StockService:股票数据处理TelegramBotService:Telegram消息推送WechatBotService:微信消息推送StockScheduler:定时任务调度MCP Tools:AI助手工具集注意事项微信机器人限制:仅支持Windows系统仅支持特定版本的微信客户端请遵守微信使用协议,勿用于商业或非法用途数据库连接:确保MySQL服务正常运行数据库用户具有相应权限外部API:百度翻译API需要申请相应的APP ID和密钥Telegram Bot需要创建并配置机器人定时任务:默认每30秒抓取一次RSS数据可根据需要调整 StockScheduler.java 中的cron表达式常见问题如何修改定时任务间隔?编辑 StockScheduler.java 文件中的 @Scheduled(cron = "*/30 * * * * ?") 注解。如何添加新的RSS源?修改 RssServiceImpl.java 中的 RSS_URL 常量。如何扩展通知渠道?实现 TelegramBotService 接口并添加相应的服务实现类。许可证本项目仅供学习交流使用,请勿用于商业用途。免责声明代码仅用于技术交流学习,请勿用于非法用途和商业用途!如因此产生任何法律纠纷甚至造成账号封禁或其他损失等情况,使用者承担所有责任。