重构Service类实现,将QueryService泛型参数调整为VO类型,确保缓存VO对象而非实体。优化关联实体处理逻辑,减少重复代码。修改findById方法返回VO对象,新增getById方法获取实体。更新相关调用点以适配新接口。 调整WebSocket处理、控制器及Service实现,确保数据类型一致性。完善文档记录重构过程及发现的问题。为后续优化提供基础架构支持。
2.7 KiB
2.7 KiB
TODO - Server模块service缓存调整为Vo对象
1. 批量修改其他Service类
按照CompanyFileTypeService的修改模式,批量修改以下Service类:
- CompanyCustomerFileTypeService
- CustomerFileTypeService
- CompanyFileService
- CompanyCustomerFileService
操作指引:
-
对于每个Service类:
- 调整QueryService接口的泛型参数为对应的Vo类
- 重构findById方法,返回类型改为对应的Vo类,并添加@Cacheable注解
- 保留getById方法,用于获取实体对象
- 让实体类继承Voable接口并实现toVo方法,完成从实体到Vo的转换
- 确保所有标注@Cacheable注解的方法的返回参数类型不为Model类型,全部调整为Vo类型
- findAll(JsonNode,Pageable)方法的返回类型调整为Page,并使用实体类自带的toVo方法进行转换
- findAll(Specification,Pageable)方法的返回类型保持为Page
- 仅保留一个save(Model)方法,用于保存实体对象
- 不创建独立的toVo方法:直接使用实体类自带的
toVo()方法进行转换
-
确保每个Service类的修改都符合以下要求:
- 保持接口兼容性
- 正确使用缓存注解
- 实现实体与Vo之间的正确转换
2. Redis缓存清理
在所有Service类修改完成后,需要清理Redis中的缓存数据,以确保新的缓存策略能够正确生效。
操作指引:
- 开发一个缓存清理工具或脚本
- 执行缓存清理操作,清除所有相关的缓存键
- 验证清理结果,确保缓存已被正确清除
3. WebSocket服务兼容性处理
检查并确保WebSocket服务能够正确处理Vo对象,避免序列化问题。
操作指引:
- 分析WebSocket服务的代码
- 确保WebSocket服务能够正确序列化和反序列化Vo对象
- 必要时进行相应的修改
4. 测试验证
对所有修改进行全面的测试验证,确保功能正常。
操作指引:
- 编写单元测试和集成测试
- 执行功能测试,验证各Service类的功能是否正常
- 执行性能测试,验证缓存策略的效果
- 记录测试结果
5. 文档更新
完成所有修改后,更新相关文档,包括系统架构文档、API文档等。
操作指引:
- 整理所有修改内容
- 更新系统架构文档
- 更新API文档
- 更新用户手册
6. 部署计划
制定详细的部署计划,确保修改能够顺利上线。
操作指引:
- 确定部署时间窗口
- 制定回滚策略
- 准备部署脚本
- 通知相关人员
7. 上线后监控
上线后进行持续监控,确保系统运行稳定。
操作指引:
- 设置监控指标
- 配置告警机制
- 定期检查系统运行状态
- 及时处理异常情况