# refactor-example **Repository Path**: yangzhen134/refactor-example ## Basic Information - **Project Name**: refactor-example - **Description**: 修改开源协议为改为开源 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-28 - **Last Updated**: 2026-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Stock Struts 项目 股票分析系统的 Struts2 Web 版本,实现了与原 `stock-example` 项目相同的业务功能,但以 Web 应用的形式提供。 ## 项目结构 ``` stock-struts/ ├── pom.xml # Maven配置 ├── README.md # 项目说明 ├── src/ │ ├── main/ │ │ ├── java/com/stock/struts/ │ │ │ ├── action/ # Struts2 Action类 │ │ │ │ ├── BaseAction.java # 基础Action │ │ │ │ ├── IndexAction.java # 首页Action │ │ │ │ ├── StockAction.java # 股票管理Action │ │ │ │ └── ConfigAction.java # 配置管理Action │ │ │ ├── common/ # 公共类 │ │ │ │ ├── StockData.java # 股票数据实体 │ │ │ │ ├── AnalysisResult.java # 分析结果实体 │ │ │ │ └── StockConstants.java # 常量定义 │ │ │ ├── service/ # 业务逻辑层 │ │ │ │ ├── ConfigManager.java # 配置管理器 │ │ │ │ ├── DataAnalyzer.java # 数据分析器 │ │ │ │ └── RealtimeCalculator.java # 实时计算器 │ │ │ └── interceptor/ # 拦截器 │ │ │ ├── LoggingInterceptor.java # 日志拦截器 │ │ │ └── AuthInterceptor.java # 认证拦截器 │ │ ├── resources/ │ │ │ ├── struts.xml # Struts2配置 │ │ │ ├── stock-config.properties # 配置文件 │ │ │ └── logback.xml # 日志配置 │ │ └── webapp/ │ │ ├── WEB-INF/ │ │ │ └── web.xml # Web应用配置 │ │ ├── stock/ │ │ │ ├── list.jsp # 股票列表页面 │ │ │ ├── analyze.jsp # 分析结果页面 │ │ │ └── metrics.jsp # 实时指标页面 │ │ ├── config/ │ │ │ └── view.jsp # 配置管理页面 │ │ ├── index.jsp # 首页 │ │ ├── info.jsp # 系统信息页面 │ │ └── error.jsp # 错误页面 │ └── test/ │ └── java/com/stock/struts/ │ └── StockStrutsTest.java # 测试类 ``` ## 与原项目对比 | 特性 | stock-example | stock-struts | |------|---------------|--------------| | 类型 | 桌面应用 | Web应用 | | 框架 | 纯Java | Struts2 MVC | | 交互方式 | 命令行 | 浏览器界面 | | API支持 | 无 | JSON API | | 数据存储 | Session | Session | ## 模块耦合关系 ``` ┌─────────────────┐ ┌─────────────────┐ │ ConfigManager │◄───────►│ DataAnalyzer │ └────────┬────────┘ └────────┬────────┘ │ │ │ ┌─────────────────┐ │ └───►│ RealtimeCalculator│◄───┘ └─────────────────┘ ``` ## 构建和运行 ### 1. 编译打包 ```bash cd example/stock-struts mvn clean package ``` ### 2. 使用 Jetty 插件运行(开发模式) ```bash mvn jetty:run ``` 访问:http://localhost:8080/stock-struts/ ### 3. 部署到 Tomcat 将 `target/stock-struts.war` 复制到 Tomcat 的 `webapps` 目录。 ### 4. 运行测试 ```bash mvn test ``` ## 功能说明 ### 页面功能 | 页面 | URL | 功能 | |------|-----|------| | 首页 | /index.action | 系统概览、快速操作 | | 股票列表 | /stock/list.action | 查看、添加、删除股票 | | 分析结果 | /stock/analyze.action | 查看股票分析结果 | | 实时指标 | /stock/metrics.action | 查看实时计算指标(自动刷新) | | 配置管理 | /config/view.action | 修改系统配置 | | 系统信息 | /info.action | 查看系统信息 | ### JSON API | 接口 | URL | 说明 | |------|-----|------| | 系统状态 | /status | 获取系统状态JSON | | 股票列表 | /stock/listJson | 获取股票列表JSON | | 分析股票 | /stock/analyzeJson?stockCode=xxx | 分析指定股票并返回JSON | | 配置列表 | /config/listJson | 获取配置JSON | ## 配置项说明 | 配置项 | 默认值 | 说明 | |--------|--------|------| | analysis.threshold | 0.05 | 分析阈值 | | analysis.batchSize | 100 | 批量分析大小 | | realtime.interval | 3000 | 实时数据间隔(ms) | | compute.mode | realtime | 计算模式 | | compute.precision | 4 | 计算精度 | | cache.maxSize | 10000 | 缓存最大容量 | | cache.expireTime | 60000 | 缓存过期时间(ms) | ## 技术栈 - Java 8 - Apache Struts 2.5.33 - Servlet 4.0 - JSP/JSTL - Maven - Jetty Plugin ## 与原项目保持一致的核心功能 1. ✅ 配置管理模块 (ConfigManager) 2. ✅ 数据分析模块 (DataAnalyzer) 3. ✅ 实时计算模块 (RealtimeCalculator) 4. ✅ 单只股票分析 5. ✅ 批量股票分析 6. ✅ 实时指标计算 7. ✅ 结果缓存 8. ✅ 配置热更新 9. ✅ 模块间的双向依赖关系